请给我一点mysql的帮助

时间:2010-02-05 10:14:37

标签: sql database

我有一个机密网站。

用户可以放入分类广告,每个类别都有子选项。

Ex:用户选择CAR,并且必须填写颜色,里程,燃料,变速箱等选项。

以下是我的表格:

Category table:
cat_id (PK)
cat_name // "Cars" for example

Category Options table:
option_id (PK)
cat_id (FK)
option_name // "Color" for example

Option Values table:
value_id (PK)
option_id (FK)
value // "red" for example

我的Q是,在最后一个表(选项值)中,不应该有“别的”,因为我如何增加此表或将此表引用到分类?

例如,让我们看看这些表中的两条记录: 首先是分类表:

  Cat_id         Cat_name
     1            cars
     2            trucks

然后是Category Options表:

 option_id        Cat_id(FK)       option_name
     1              1                color
     2              1                mileage

然后选项值表,这里是问题,我不知道如何:

  Value_id       option_id(FK)    value
     1               1            red
     2               2          11000 miles

如果我决定在另一辆车上插入另一辆车,会发生什么? 最后一张表中不应该有另一个参考文献吗?

我还有其他表格,如“分类”,其中包含标题,文字,价格等......

由于

1 个答案:

答案 0 :(得分:1)

你已经自己给出了答案。

  

不应该有另一个参考   在最后一张表中?

     

我还有其他表格,如   “分类”,其中包含标题,   文字,价格等...

将表classified的ID作为表选项中的另一个键,以便获得

Option Values table:
value_id (PK)
option_id (FK)
classified_id (FK)
value // "red" for example

然后,您可以获取指定分类的所有选项的所有值:

SELECT c.option_name, o.value
FROM option_Values o
LEFT JOIN category_options c ON (o.option_id=c.option_id)
WHERE o.classified_id = 15; -- as an example