我目前有10个几乎相同的表,我的应用程序的每个部分内容都有1个。我的应用中没有任何查询一次只能访问其中一个以上的表。
创建一个articles
表,其中包含多个表共有的所有字段。添加一个新的section
字段,表示旧表名。
将10个原始表字段中的每一个字段缩减为该部分唯一的4或5个字段。
添加指向articles表中原始记录的外键。 将10个表重命名为前缀“extra _”。
创建10个内部连接articles表到每个extra_表的视图。 这些视图与原始10个表的名称相同。
思想:
由于生成的视图将包含原始视图中的所有字段,因此很少需要更新的现有PHP / SQL代码。
如果我无法对视图执行INSERT,UPDATE或DELETE,则需要对现有PHP代码进行许多更改。
在文章表中添加一个新字段并使其在视图中可用需要重新创建10个视图。
从文章表中删除视图中使用的字段需要重新创建10个视图。
......其他好处或缺点?
保留当前的10个表,创建一个UNION ALL
所有表格的视图。
思想:
对10个表中任何一个表的更改都需要仅重新创建1个视图。现有PHP代码需要零更改。
......其他好处或缺点?
用PHP做一切。创建一个列出所有表的数组以及从中获取哪些字段。使用PHP动态生成和搜索大UNION
SQL查询。