数据库中具有多个类别的项目 [英] An item with multiple categories in DB

查看:47
本文介绍了数据库中具有多个类别的项目的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I have a contacts table and a contact_category table. I am trying to reflect in table that one contact can belong to several categories.

是否有建议的设计模式来实现这一目标?我想到的只是在每个联系人的附加字段中创建一个字符串,并确定该联系人所属的类别.

Is there any recommended design pattern for implementing this? What comes to my mind is just creating a string in an additional field for every contact and concat the categories this contact belongs to.

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

For ex.: "cat1,cat3" would mean that a contact belongs to cat1 and cat3

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

But, isn't there any proper way of designing this?

推荐答案

一般来讲,以我用很少见的观点,用逗号分隔的具有多个值的文本字段在数据库设计中不是一个好主意.

Generally speaking, a comma-delimited text field with multiple values is a bad idea in database design, in my rarely-humble opinion.

我会推荐这样的东西(我在SQL Server中编码,所以我的语法看起来像这样):

I'd recommend something like this (I code in SQL Server, so that's what my syntax will look like):

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

以上内容使您可以将一个联系人与多个类别关联,并将一个类别与多个联系人关联.如果您有任何问题,请告诉我.

The above allows you to associate a contact to multiple categories and a category to multiple contacts. Let me know if you have any questions.

这篇关于数据库中具有多个类别的项目的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆