首页 > 解决方案 > 具有固定联系人数量的数据库设计的最佳方法是什么?

问题描述

我目前正在为一个项目设计一个数据库。我想让它正常化,我遇到了一个我想在更大的群体中提出的问题,特别是关于以前的经历。

关于情况:一个组织有 0 到 4 个联系伙伴。在四个联系合作伙伴中,两个在组织现场(本地),两个在全国范围内(全球)。

在输入掩码上,用户可以从联系人表中选择哪个联系人是所谓的“本地联系人伙伴 1”、“本地联系人伙伴 2”、“全局联系人伙伴 1”等,因此顺序(订单、“1 " 或 "2") 是相关的。

构建数据库的最佳方法是什么?我附上了三个例子,但请随时提出其他建议。

3 数据库示例

标签: sqldatabasestructuredatabase-normalization

解决方案


我会推荐第三种解决方案。在未来的某一天,企业会提出一个例外,并声明一个组织可以有 5 个或更多联系人。如果 OrganiationContacts 的主键是 organizationId+ContactId,您还可以保证同一联系人不能同时是本地和全局或定义两次作为联系人。其他结构不能保证这一点,需要额外的验证逻辑。


推荐阅读