数据库设计 – 构建联系人数据库 – 需要一点模式灵感

我一直在为我正在开发的应用程序编制数据结构.需要处理的一件事是存储客户/联系信息.我一直在研究一些不同的联系信息程序(如通讯录,Gmail联系人等)的界面.

我已经将联系人基本上沸腾到一个“实体”(个人,公司,角色等).

>每个实体可以有多个地址,电话,电子邮件条目.

>每个都定义了一个“关系”(家庭/工作/助理等)
>实体{1} – {关系} – > {0 .. *}数据

>实体可以有多个字段,可以为其他“通用”数据(生日,aim帐户等)自由格式存储数据,

>实体{1} – {fieldName} – > {0 .. *}字段数据

>实体可以链接到另一个实体,例如作为雇员,配偶

>实体{0 ..}< - {relationship} - > {0 ..}实体

有没有人做过类似联系人数据库的任何sql实现?任何洞察/建议/陷阱,以避免你可以分享一个人试图在一个项目自己在这里工作?我所描述的看起来是合理还是过于复杂?

一个问题,让你说有4个人都在同一家公司工作.他们都有相同的“工作”电话号码(可能有不同的扩展名) – 如果“工作”的号码或地址发生变化,我想能够相当容易地更新联系人.现在很多事情归结于如何使用数据库.我认为这是将员工与其各自公司实体联系起来的问题,但是地址/电话号码不再直接连接到员工.我很讨论使得实体/数据关系成为许多,允许您将相同的邮寄地址/电话号码附加到多个人,并且在一个地方更新它可以在所有地方更新.我刚刚想到了吗?拉出头发

解决方法

这是一个有点trite,但你需要知道你的数据和你将要做什么,然后再开始思考表.

在建立任何表格之前,我建议您查看Object Role Modeling(或this)以简单的英文定义模型.我使用这个VS插件NORMA也将为你生成一个模式.

或者,有一堆data models here可能会激励你.
这是“联系人管理”,但还有其他的,如“客户”部分

(我只是想张贴图片..)
Contact Management http://www.databaseanswers.org/data_models/contact_management/images/contact_management_model.gif

相关文章

SELECT a.*,b.dp_name,c.pa_name,fm_name=(CASE WHEN a.fm_n...
if not exists(select name from syscolumns where name=&am...
select a.*,pano=a.pa_no,b.pa_name,f.dp_name,e.fw_state_n...
要在 SQL Server 2019 中设置定时自动重启,可以使用 Window...
您收到的错误消息表明数据库 &#39;EastRiver&#39; 的...
首先我需要查询出需要使用SQL Server Profiler跟踪的数据库标...