0

查找表 - 唯一行标识

其他查找表只是没有意义,因为从我所看到的给一行一个 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 voodoo 肯定会更容易我正在从教程等中学习 mysql,并且想知道如何直接使用 sql 来做。

4

1 回答 1

0

在列中具有 NULL 值并不是导致这种设计的主要问题 - 这是将来添加新属性列的问题,MySQL 在这方面做得非常糟糕。

如果要进行查询以在一行中返回有关项目的所有信息,则需要将 LEFT OUTER JOIN 返回到每个 feature_id 的 product_lookup 表。这大约是 Stack Overflow 上每 10 个 mysql 问题,因此您应该能够找到大量示例。

于 2012-09-14T16:07:18.620 回答