搜索多个表的最佳策略是什么?

时间:2015-03-04 22:34:23

标签: php mysql database

我目前有10个几乎相同的表,我的应用程序的每个部分内容都有1个。我的应用中没有任何查询一次只能访问其中一个以上的表。

选项1

创建一个articles ,其中包含多个表共有的所有字段。添加一个新的section 字段,表示旧表名。

将10个原始表字段中的每一个字段缩减为该部分唯一的4或5个字段。

添加指向articles表中原始记录的外键。 将10个表重命名为前缀“extra _”

创建10个内部连接articles表到每个extra_表的视图。 这些视图与原始10个表的名称相同。

思想:

由于生成的视图将包含原始视图中的所有字段,因此很少需要更新的现有PHP / SQL代码。

如果我无法对视图执行INSERT,UPDATE或DELETE,则需要对现有PHP代码进行许多更改。

在文章表中添加一个新字段并使其在视图中可用需要重新创建10个视图。

从文章表中删除视图中使用的字段需要重新创建10个视图。

......其他好处或缺点?

选项2

保留当前的10个表,创建一个UNION ALL所有表格的视图。

思想:

对10个表中任何一个表的更改都需要仅重新创建1个视图。现有PHP代码需要零更改。

......其他好处或缺点?

选项3

用PHP做一切。创建一个列出所有表的数组以及从中获取哪些字段。使用PHP动态生成和搜索大UNION SQL查询。

任何人对所提出的方案都有更好的建议或建议吗?

0 个答案:

没有答案