【问题标题】:SQL - Insert multiple categories to columnSQL - 将多个类别插入列
【发布时间】:2018-10-13 22:44:35
【问题描述】:

我有一个存储产品的表,并且在同一个表中存储了我希望产品所在的类别的 ID。

我的产品表如下所示:

id | product_name | category_id | price

然后我有我的类别表:

id | category

我的问题是知道如何将多个类别插入到我的 category_id 中,以及是否可以。

如果没有,我能做到的最好方法是什么?

【问题讨论】:

    标签: mysql sql


    【解决方案1】:

    这是可能的,但你真的不想去那里。在 99.99999% 的情况下,在单个数据行列中存储多个值是一个糟糕的想法。

    如需了解更多信息,请阅读Is storing a delimited list in a database column really that bad?,您会在其中看到很多理由说明为什么这个问题的答案是绝对是的!

    您要做的是添加另一个表来存储产品和类别之间的关系。这称为多对多关系。

    这个新表应该在一列中保存产品 ID,在另一列中保存类别 ID,并具有由这两列组合而成的复合主键。

    这样,您可以在同一类别中拥有多个产品,并且同一产品可以拥有多个类别。

    【讨论】:

    • 是的!我阅读了参考资料,我应该知道这不是一个好主意。就解决方案而言,它要简单得多,我将立即实施。谢谢。
    【解决方案2】:

    你需要一个many to many 关系,这意味着你需要第三个表让我们称之为ProductCategories,在这种情况下你将拥有

    • 产品

      id | product_name | category_id | price
      
    • 类别

      id | category
      
    • 产品类别

        PruductID | CategoryID (combined PK)
      

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-06-14
      • 1970-01-01
      • 2021-10-13
      • 2018-12-06
      • 1970-01-01
      • 2017-10-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多