我有一个contacts
表和一个contact_category
表。我试图在表格中反映一个联系人可以属于几个类别。
有没有推荐的设计模式来实现这个?我想到的只是在每个联系人的附加字段中创建一个字符串,并连接该联系人所属的类别。
例如:
"cat1,cat3"
表示联系人属于cat1
和cat3
但是,有没有任何正确的设计方法?
答案 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
以上功能允许您将联系人与多个类别相关联,并将类别与多个联系人相关联。如果您有任何问题,请告诉我。