Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 搜索多个表的最佳策略是什么?_Php_Mysql_Database - Fatal编程技术网

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

Php 搜索多个表的最佳策略是什么?,php,mysql,database,Php,Mysql,Database,我目前有10个几乎完全相同的表格,我的应用程序中的每一部分内容都有一个表格。我的应用程序中没有一个查询一次访问这些表中的一个以上 选择1 创建一个文章表,该表包含多个表共有的所有字段。添加新的部分字段,指示旧表名 将10个原始表字段中的每个字段减少为该部分特有的4或5个字段 添加指向articles表中原始记录的外键。 重命名这10个表,以前缀“extra”开头 创建10个视图,将articles表内部连接到每个额外的表。 这些视图将与原来的10个表具有相同的名称 想法: 由于生成的视图将包含原

我目前有10个几乎完全相同的表格,我的应用程序中的每一部分内容都有一个表格。我的应用程序中没有一个查询一次访问这些表中的一个以上

选择1 创建一个
文章
,该表包含多个表共有的所有字段。添加新的
部分
字段,指示旧表名

将10个原始表字段中的每个字段减少为该部分特有的4或5个字段

添加指向articles表中原始记录的外键。 重命名这10个表,以前缀“extra”开头

创建10个视图,将articles表内部连接到每个额外的表。 这些视图将与原来的10个表具有相同的名称

想法:

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

如果我不能插入、更新或删除视图,我需要对现有的PHP代码进行许多更改

向articles表中添加新字段并使其在视图中可用需要重新创建10个视图

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

。。。其他好处还是缺点

选择2 保留当前的10个表,创建一个视图,将所有表合并在一起

想法:

对10个表中的任何一个表所做的更改只需要重新创建一个视图。无需对现有PHP代码进行任何更改

。。。其他好处还是缺点

选择3 用PHP做任何事情。制作一个数组,列出所有表以及需要的字段。使用PHP动态生成和搜索大
UNION
SQL查询


有人对建议的选项有更好的建议或建议吗?在进行查询时,您是否更经常地访问全部或大部分10个表?或者查询通常一次限于10个表中的一个?查询一次限于10个表中的1个。。。我几乎可以肯定,当前所有与这些表相关的查询每次都是1。考虑到这一点,而且这些表并不完全相同,我希望将它们分开。然后在需要的时候在我的PHP代码中分别查询每个表。我将把它留在这里:选项1(或1a)的副作用是应用程序不再需要10个查询,而只需要一个查询。