【发布时间】:2011-03-01 07:20:56
【问题描述】:
我想知道按他们的公司对联系人进行分组的最佳方式是什么。现在用户可以通过自定义创建的 lists 对他们的联系人进行分组,但我希望能够按他们的 company 对联系人进行分组以及存储联系人的位置(即 XYZ 公司项目经理)。
数据库方面,这就是我将联系人分组到列表中的方法
联系
[id_contact] [int] PK NOT NULL,
[姓氏] [varchar] (128) NULL,
[firstName] [varchar] (128) NULL,
……联系人列表
[id_contact] [int] FK,
[id_list] [int] FK,列表
[id_list] [int] PK
[id_user] [int] FK
[list_name] [varchar] (128) 非空,
[描述] [TEXT] NULL
我应该实施类似的方法来按公司对联系人进行分组吗?如果是这样,我将如何存储联系人在该公司的职位,以及如果用户修改联系人的公司名称,我如何防止数据损坏。例如,John Doe 换了公司,但其他同事仍在旧公司。
我怀疑这种情况会经常发生(甚至可能根本不会发生),但最好是安全而不是抱歉。我还保留了审计跟踪,因此在某种程度上,联系人仍需要与旧公司和新公司相关联,但不会混淆他目前实际工作的公司。
我希望这是有道理的......有人遇到过这样的问题吗?
更新
这样的事情有意义吗
contact_company
[id_contact_company] [int] PK
[id_contact] [int] FK
[id_company] [int] FK
[contact_title] [varchar] (128)公司
[id_company] [int] PK NOT NULL,
[公司名称] [varchar] (128) NULL,
[company_description] [varchar] (300) NULL,
[created_date] [datetime] NOT NULL
这样一个联系人可以为多个公司工作,并且联系人可以按公司分组
【问题讨论】:
标签: mysql database database-design relational-database