Sql表安排

时间:2014-08-16 08:30:59

标签: php mysql

我必须将产品发布到mySql 其中每个产品无法预测它有多少种颜色;某些产品可能只有一种颜色或10种颜色。

出于这个原因,在这一刻,我只创建了一堆 20个单独的颜色表,其中所有这些表都指向名为product的主表。

enter image description here

我的问题是:

首先,如何将“产品表”链接到所有颜色“表格”

其次,如何同时发布“产品表”和“颜色表”。我的意思是,当我将一个产品发布到“产品表”中以获取其标题,描述和价格时,我还可以在每个表格中发布一些不同的颜色图像。

我用PHP表单执行此操作。因为我是Mysql和PHP的新手,到目前为止我只能将一些内容发布到一个表中。

我希望有人在上面的问题中明白我的意思。

我也在寻找一种不同的方法如果有人有聪明的方法来做到这一点。

非常感谢你。

1 个答案:

答案 0 :(得分:3)

不,不,不,不,不!

在正在运行的系统中,表格设计不应更改。至少不多。不要一直生成表格。

更好的桌面设计将使用2个表格进行颜色

colors table
------------
id
name


product_colors table
--------------------
product_id
color_id

示例数据将是

products
id  title   description  ...
1   prod1   bla bla


colors
id   name
1    green
2    blue


product_colors
product_id  color_id
1           1
1           2

然后获取产品prod1的颜色,你可以做

select c.name
from colors c
join product_colors pc on pc.color_id = c.id
join products p on pc.product_id = p.id
where p.title = 'prod1'

该设计非常灵活 - 您可以为产品提供尽可能多的颜色,并且查询速度非常快。