Database design 应用单表继承
问题: 总结:Database design 应用单表继承,database-design,single-table-inheritance,Database Design,Single Table Inheritance,问题: 总结: 我的缺点是:客户、员工和分支机构 Customers和Employees与一名人员、一名个人(与人员本身相关的字段)和一名用户(用于登录目的)相关联。因此,个人s和用户s始终与一个客户或员工人相关 分支机构与一个人员和一个公司(与公司人员相关的字段)关联。因此,公司始终与一个分支机构人员相关。他们没有用户,因为他们隶属于该数据库所代表的公司——是他们的员工可以在应用程序中进行身份验证 员工属于一个分支机构。一个分支机构有零名或多名员工s。(是的,图表不正确,对不起!) 目前,
- 我的缺点是:客户、员工和分支机构
s和Customer
s与一名Employee
、一名人员
(与人员本身相关的字段)和一名个人
(用于登录目的)相关联。因此,用户
s和个人
s始终与一个用户
或客户
人相关员工
与一个分支机构
和一个人员
(与公司人员相关的字段)关联。因此,公司
始终与一个公司
人员相关。他们没有用户,因为他们隶属于该数据库所代表的公司——是他们的员工可以在应用程序中进行身份验证分支机构
属于一个员工
。一个分支机构
有零名或多名分支机构
s。(是的,图表不正确,对不起!)员工
- 目前,我正在使用一个位来区分员工角色-我有拥有运营和管理权限的员工。角色权限包含在代码本身中,在这里您可以意识到客户也有自己的角色。。。有没有建议实施更好(更简单)的方式来管理客户和员工的角色
我还能改进吗?哪里您将如何对此进行建模?只有当您具有正常的低基数(更少的唯一/更多的重复)时,才值得为城市创建一个新表。因此,根据您的用户,您必须自行决定。另一方面,您可以分离地址表和电话号码表 根据您存储的有关员工和客户的信息类型,您可以只使用一个字段来指示此人(如果是员工或客户)是否可以有两个单独的表 如果我们谈论角色,它们通常表示员工的权限/职位/可访问性。即常规、P/T、经理。您可以为每个组/角色开发内容的访问级别和可见性 从Person中取出所有个人详细信息并将其存储在新表中。(只是好奇..你真的需要
昵称
字段吗?磁盘I/O是任何应用程序的最大瓶颈之一)将个人详细信息与专业详细信息和ID分开
说到分支机构,您确定在任何时候只有一个联系人吗?通常情况下,商业世界并非如此。但是一个分支机构/个人在任何给定的时间都只有一个地址,所以这里单独的地址表会很有帮助
一般来说,很难提出一个结构。好的设计总是基于业务规则