其他查找表只是没有意义,因为从我看到给行一个ID然后将该id放在另一个也有id的表中,然后将这些id添加到更多的表中,这些表可能引用它们并仍在创建一个包含更多id的查找表(这就是我能找到的所有例子的样子)我所做的是:
product_item - table
------------------------------------------
id | title | supplier | price
1 | title11 | suuplier1 | price1
等。 然后继续包含更多项目(确定你得到它)
product_feature - table
--------------------------
id | title | iskeyfeature
1 | feature1 | true
feature_desc - table
-----------------------------
id | title | desc
1 | desc1 | text description
product_lookup - table
item_id | feature_id | feature_desc
1 | 1 | 1
1 | 2 | 2
1 | 3 | 3
1 |64 | 15
(因为这些只需要在查找中引用,id可以是每个项目的倍数或每个要素的多个项目)
我想要做什么而不将item_id添加到每个要素行或描述行只检索多个表中的列,这些列的ID在查找表的同一行中被引用。我想知道是否可以从查找行中选择所有引用的列,如果我只知道item_id,例如。 Item_id = 1
返回item_id = 1
的所有行,其中包含同一行中引用的列。每个项目都可以有多个功能,并且每个功能都可以附加到多个项目,如果我能够从单个已知值构建此查询的正确模式,这无关紧要。
任何帮助或只是某个方向将不胜感激。我正在使用phpmyadmin,并确保这将更容易与一些PHP伏都教我正在从教程ect学习mysql,并想知道如何直接用sql做。
答案 0 :(得分:0)
在列中包含NULL值并不是导致此设计的主要问题 - 这是将来添加新属性列的问题,在这种情况下,MySQL非常糟糕。
如果要创建一个返回一行中某个项的所有内容的查询,则需要将每个feature_id的LEFT OUTER JOIN返回到product_lookup表。这是关于Stack Overflow的每10个mysql问题,所以你应该能够找到大量的例子。