DB中具有多个类别的项目

时间:2018-01-18 09:52:01

标签: database database-design relationship

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

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

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

但是,有没有任何正确的设计方法?

1 个答案:

答案 0 :(得分:2)

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

我推荐这样的东西(我在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

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