sql - 具有固定联系人数量的数据库设计的最佳方法是什么?
问题描述
我目前正在为一个项目设计一个数据库。我想让它正常化,我遇到了一个我想在更大的群体中提出的问题,特别是关于以前的经历。
关于情况:一个组织有 0 到 4 个联系伙伴。在四个联系合作伙伴中,两个在组织现场(本地),两个在全国范围内(全球)。
在输入掩码上,用户可以从联系人表中选择哪个联系人是所谓的“本地联系人伙伴 1”、“本地联系人伙伴 2”、“全局联系人伙伴 1”等,因此顺序(订单、“1 " 或 "2") 是相关的。
构建数据库的最佳方法是什么?我附上了三个例子,但请随时提出其他建议。
解决方案
我会推荐第三种解决方案。在未来的某一天,企业会提出一个例外,并声明一个组织可以有 5 个或更多联系人。如果 OrganiationContacts 的主键是 organizationId+ContactId,您还可以保证同一联系人不能同时是本地和全局或定义两次作为联系人。其他结构不能保证这一点,需要额外的验证逻辑。
推荐阅读
- c++ - 为什么将函数分配给`std::function`会导致未定义的引用?
- assembly - 存储到堆栈地址的双字是否会影响地址+0..3 或地址-0..3 处的字节?
- javascript - 如何从已从 firebase 检索并放入表单的表中获取特定数据值
- python - “'str'对象不可调用”是什么意思?
- python - Selenium - for-loop 在循环遍历元素列表时不给出所有结果
- jupyter-lab - 没有标签的 JupyterLab 自动建议
- c# - 将文件下载到内部存储中的某个路径 { C# Xamarin }
- python - 使用选择的 2 和名称更改元素
- c++ - 使用不同数据结构的不同输出
- python - 在 MongoDB 上的 POST 请求后找不到 Flask 404