![](/img/trans.png)
[英]Relational Database: Best practice regarding amount of queries per API call
[英]Relational Data: entity inheritance approaches. Best practice
有几种方法如何在关系数据库中存储实体层次结构
例如,有人实体(20个基本属性),学生实体(与人相同但存在几个新的特定字段),员工(与人相同但存在一些新字段)等
当您建议使用(而不是使用)以下数据建模方法时:
先感谢您!
数据库模拟事实,而不是对象,每个表应该建立一组相对自包含的事实。 这样做的结果是你的表应该是这样的:
person { person_id PK, name, dob, ... }
student { person_id PK FK(person.person_id), admission_id, year_started, ... }
employee { person_id PK FK(person.person_id), salary_bracket, ... }
另一个后果是学生也可以是一名员工,这可能比继承图更接近现实生活。
看看hibernate继承映射文档 。 在那里,您会发现三种常见方法以及每种方法的优缺点列表。
如果您使用ORM来实现类,那么您使用的ORM工具将为您提供选项,通常是两个选项,一个一个表或一个父类一个表以及每个子类的每个表。 我正在使用Devexpress.com的XPO,一个ORM框架。 它提供了这两个选项。
如果您使用ORM,我担心没有其他通用选项。
英
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.