【问题标题】:Creating related tables in mysql database在mysql数据库中创建相关表
【发布时间】:2016-07-31 14:04:32
【问题描述】:

我手头有一个项目,需要我建立一个数据库来保存产品,目前我有产品表,颜色表尺寸表如下

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 码只有红色和蓝色,绿色只有 M 码,而橙色有 S 和 L 码,如何我是否将这两个表关联起来以存储此信息以便于检索

如有任何帮助,我们将不胜感激,在此先感谢

【问题讨论】:

    标签: mysql


    【解决方案1】:

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

    【讨论】:

    • 很好,我们的想法完全一样
    • 谢谢大家的评论,我会试试看我能想出什么
    【解决方案2】:

    你展示的设计有问题。由于没有一个表可以用作父表(除非您任意选择一个),因此您将很难将一个表引用到另一个表。 我的建议是创建一个包含 product_id 作为 PK 的主表,然后两个表都可以将其作为父表引用。该表将用作制造衬衫类型的描述符 - 包含产品描述,也许还有其他特征,例如价格。

    然后,由于颜色和尺寸是衬衫的特定物理表现形式的参考,我会将它们合并到一个表中。这样,您还可以使用此表来存储数量,并在库存不足时收到警报。

    【讨论】:

    • 谢谢你的想法,我已经有一个产品表,其中 product_id 为 PK,颜色 id 大小 id 为 FK 也有 Qty 等等,无论如何我会尝试另一种方法,看看它是否有效谢谢你们的时间
    猜你喜欢
    • 1970-01-01
    • 2022-01-23
    • 2012-10-18
    • 2013-10-01
    • 2014-12-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多