从那个StackOverflow 的问题:

总结:
Customers 和Employees 与 one Person、 one Individual(与此人本身相关的字段)和 one User(用于登录目的)相关联。所以Individuals 和Users 总是与一个人Customer或一个Employee人有关。Branches 与一Person和一相关联Company(与公司人相关的字段)。所以Companys总是与一个Branch人有关。他们没有用户,因为他们隶属于这个数据库所代表的公司——是他们的员工可以对应用程序进行身份验证。Employee属于一个Branch。ABranch有零个或多个Employees。(是的,图表不正确,抱歉!)Employee角色 - 我有拥有操作和管理权限的员工。角色权限包含在代码本身中,在这里您可以意识到客户也有自己的角色......是否有任何建议来实施更好(和简单)的方法来管理客户和员工的角色?我应该如何更改错误的3NF 结构以实现设计良好的单表继承以更好地使用 MVC 模式?
更新
好吧,我试着简化了一下,现在我完成了这个新结构:

我还能改进吗?如何?
除非我误解了您的要求,否则Person、Individual、Company和User表可以合并为一条记录,因为这些表之间的关系都是一对一的。除非这是某种棘手的问题......
甚至可以说,所有涉及一对一关系的表都可以合并到一个表中,因为这将消除重复的外键,从而节省空间。话虽如此,您确实必须在空间紧张的情况下才担心节省那么一点空间。
在我看来,您需要重新审视您的设计规范,着眼于简化。
| 归档时间: |
|
| 查看次数: |
1522 次 |
| 最近记录: |