在mysql数据库中创建相关表

时间:2016-07-31 14:04:32

标签: mysql

我手边有一个项目,它要求我设置一个数据库来保存产品,目前我有产品表,颜色表大小表如下

color table
colorId(PK)
color
procductId(FK)

size table
sideId(PK)
size
productId(FK)

我可以将这2个表与产品联系起来,现在我的问题是我需要关联颜色表和尺寸表,例如我有以下产品: 男士Wicking Polo衫,这件单件衬衫可能有不同的颜色和不同大小的不同品种,如......

 PRODUCT NAME             SIZE         COLOR
 Men's Wicking Polo:      S, M, L      RED GREEN BLUE ORANGE

现在我的问题是:在不同尺寸的颜色不同的情况下,尺寸S仅有RED和BLUE颜色可供选择,颜色GREEN仅有尺寸M可用,而颜色ORANGE有尺寸S和L可用,如何我是否将这两个表关联起来以存储此信息以便于检索

任何帮助都将受到赞赏,提前谢谢

2 个答案:

答案 0 :(得分:1)

您可以使用另一个表avaible_product_sizes_colors,其中您将拥有一个主键(productId,sizeId,colorId),这些键是各个表的外键。您还可以存储可用产品的数量。

答案 1 :(得分:0)

您提出的设计存在问题。由于没有一个表可以作为父表(除非你任意选择一个),否则你将无法将一个表引用到另一个表。 我的建议是创建一个包含product_id作为PK的主表,然后两个表都可以将它作为父表引用。该表将作为所制造衬衫类型的描述符 - 包含产品描述,以及可能的其他特征,如价格。

然后,由于颜色和大小是衬衫的某种物理表现的参考,我会将它们联合到一张桌子上。这样,您也可以使用此表存储数量,并在库存不足时收到警报。