从1个数据库中的100个表中进行选择

时间:2018-12-06 06:35:23

标签: php mysql

我正在尝试从表1,表2,表100中选择ID,描述,标题

说我能正常工作,对我来说,将所有表合并到phpmyadmin中会更好吗?

问题是我大约有100张桌子,所有不同类别的书籍,所以我想将它们分开放在各自的桌子中。

我正在尝试创建一个搜索引擎来搜索整个数据库中的所有书籍。所有表具有相同的列名。

所以我真正想做的就是在整个数据库的表中搜索ID,描述,标题。我的搜索有效,只是我只能搜索1个表,而我发现的每个在线解决方案实际上只能对2或3个表有效地工作。

谢谢。

4 个答案:

答案 0 :(得分:1)

最好是将数据库重新设计,所有内容都放在一个表中,并带有一个附加的“类别”列。

同时,您可以创建一个视图,将表与类别的附加列合并在一起。

答案 1 :(得分:0)

我建议保留一个具有ID,描述,标题,类别的表A,并创建另一个具有类别的表B。表A必须具有带有表类别的外键。然后创建查询以检索具有特定类别的图书。

示例:

SELECT id, description, title, category FROM books WHERE category = "drama"

答案 2 :(得分:0)

我认为这与大多数本文中提到的数据库设计本身有关。您有几种选择,具体取决于您有多少时间:

(短期/快速修复)中心表,其中包含您当前的所有字段以及类别,作为区分您当前表的标志。因此,您的插入内容将类似于“在新表(IDAssetIDServiceIDCategory中插入SELECT ID,描述,标题,'Fiction'FROM table1;“

如果您将表递增命名为table1,table2到table100,则可以编写一个快速的php脚本,该脚本将迭代插入循环,同时在每次迭代时递增表直到最后一个表。

从长远来看,您可以投资json字段,该字段将容纳除与单个条目有关的键以外的所有其他数据

答案 3 :(得分:0)

我建议重新设计模型,并将这100个表统一化为1,然后添加一个新列,该列的类别为整数值,而不是字符串值。这样,您可以将类别列与其他字段(ID,描述,标题)建立索引,以加快查询速度。 此解决方案更容易避免以后出现疼痛。