代码之家  ›  专栏  ›  技术社区  ›  Cap

数据库中具有多个类别的项目

  •  0
  • Cap  · 技术社区  · 7 年前

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

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

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

    但是,难道没有合适的设计方法吗?

    1 回复  |  直到 7 年前
        1
  •  2
  •   Brian    7 年前

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

    我建议这样做(我在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
    

    通过上述功能,您可以将一个联系人关联到多个类别,将一个类别关联到多个联系人。如果你有任何问题,请告诉我。