在表中建模具有相同字段但信息不同的数据

时间:2011-11-27 04:59:39

标签: database-design

我是数据建模领域的新手,所以这可能是一个愚蠢的问题。我有一个表user,其中包含有关网站用户的信息。但是,有一些users具有与他们想要在网站上显示的内容不同的联系信息。

即。用户A是我们(开发团队)的主要联系人,但对于普通大众,他们希望与其他人联系。

因此,系统需要存储“公共”联系人和“私人”联系人。

在我们的user表中,

更好吗?
  1. 创建单独的字段以存储“公共”和“私人”联系信息,或
  2. 创建2个表 - 每个表一个 - 并且具有一对一的关系,或
  3. 创建1个表并与user建立一对多关系,并在第二个表中标识公用与私有的“id”?
  4. 感谢。

1 个答案:

答案 0 :(得分:1)

听起来你想要这样的东西:

create table User
(
    userID int,
    userName nvarchar(100)
)

create table UserContactType
(
    userContactTypeID int,
    userContactTypeDesc nvarchar(100)
)

create table UserContact
(
    userContactID int,
    userID int,
    contactTypeID int,
    contactName nvarchar(100)
)

User表包含您的用户,UserContactType表包含您的联系类型(公共,私有等),UserContact表包含每个用户所需的多个联系人,指定类型。