【问题标题】:An item with multiple categories in DBDB中具有多个类别的项目
【发布时间】:2018-01-18 09:52:00
【问题描述】:

我有一个contacts 表和一个contact_category 表。我试图在表格中反映一个联系人可以属于多个类别。

是否有任何推荐的设计模式来实现这一点?我想到的只是在每个联系人的附加字段中创建一个字符串,并连接此联系人所属的类别。

例如: "cat1,cat3" 表示联系人属于 cat1cat3

但是,没有任何适当的设计方法吗?

【问题讨论】:

  • @RobbyCornelissen 感谢您的建议,所以这将是一种多对多的关系。
  • 是的,这是一个多对多的关系。每个类别有很多联系人,每个联系人有很多类别。

标签: database database-design relationship


【解决方案1】:

一般来说,以逗号分隔的具有多个值的文本字段在数据库设计中是一个坏主意,在我看来很少见。

我会推荐这样的东西(我在 SQL Server 中编写代码,所以我的语法就是这样):

Contact
    ID    -- primary key
    -- other contact fields
Category
    ID    -- primary key
    -- other category fields

Contact_Category
    Contact_ID    -- foreign key to Contact
    Category_ID   -- foreign key to Category

以上允许您将一个联系人关联到多个类别,并将一个类别关联到多个联系人。如果您有任何问题,请告诉我。

【讨论】:

    猜你喜欢
    • 2021-02-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-10
    • 2016-03-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多