【问题标题】:Advice on linking product codes to a product in a MySQL database关于将产品代码链接到 MySQL 数据库中的产品的建议
【发布时间】:2012-06-26 23:11:10
【问题描述】:

我需要一些关于如何设置表格的建议我目前有一个产品表和一个产品代码表。

在代码表中,我有一个 id 和一个标题,例如:

1 567902
2 345789
3 345678

此表中可以有很多项。

在我的产品表中,我有通常的产品 ID、标题等,还有一个代码 ID 列,我目前正在为产品需要引用的任何代码存储一个逗号分隔的 ID 列表。

在该列中,我可能会得到如下 id:2,5,6,9

我将需要能够搜索产品表以查找特定集合的代码 ID,这是我在尝试使用 id IN ($var) 或 FIND_IN_SET 时遇到问题的地方有人建议我重组它,我很高兴只是想知道最好的方法是什么。

【问题讨论】:

    标签: mysql


    【解决方案1】:

    听起来你有两个选择。如果这是一对多关系,那么您需要在 code 表中拥有外键,而不是在 product 表中。

    codeId code   productId
    1      567902 2
    2      345789 6
    3      345678 9
    4      345690 9
    

    另一种选择是拥有另一个包含 productId 和 codeId 的表(都作为外键),这是一个多对多的关系。如果可以将代码分配给多个产品(我假设不是),这就是您应该采取的措施。它看起来像这样:

    codeId productId
    1      2
    1      10
    2      6
    3      9
    4      9
    

    我认为第一个选项是您需要的。

    【讨论】:

    • 是的,我认为它是一对多的,在许多产品中只会引用一个代码。如何在 productCodes 表中存储超过 1 个 productId?
    • 这将是另一行。我已修改答案以包含具有两个代码的产品。
    • 啊当然!这些代码可以在各种产品中,从某种意义上说,它有点像一个类别。谢谢我知道我现在需要做什么应该在几个小时前就问了,而不是试图让我的版本正常工作。
    • 不用担心@Dave。第一次尝试的好处是下次你会记住这一点;)。
    猜你喜欢
    • 2011-01-03
    • 1970-01-01
    • 2011-12-06
    • 2018-02-27
    • 2021-07-29
    • 2014-06-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多