![]() |
1
0
我以前不喜欢这种“一刀切”的方法,但几年前我被迫在一个复杂的项目中使用它之后,我成了一个粉丝。如果索引表正确,性能应该是正常的。例如,您需要类型列上的索引来加速按类型排序操作。 我现在通常建议您使用一个表来存储类似的对象。唯一的问题是,您想使用子表来存储特定于某个对象类型的数据吗?这个问题的答案实际上取决于每个对象类型的结构有多不同,以及您将拥有多少个对象类型。如果有50个对象类型的结构差别很大,您可能需要考虑只在主表中存储一致的对象部分,并为每个对象类型创建一个子表。 不过,在您的示例中,我认为您可以将所有内容放在一张表中。 有关详细信息,请参阅以下内容: http://www.agiledata.org/essays/mappingObjects.html |
![]() |
2
1
基本上有三种方法可以在关系数据库中存储对象继承层次结构。各有利弊。见:
The book 也很棒。幸运的是,第3章“映射到关系数据库” is available freely as a sample chapter .你可以在那里了解更多关于权衡的信息。 |
![]() |
3
0
不要过于依赖“应用程序视角”,它往往会随着时间的推移而变化。通常数据库也会被不同的应用程序访问,而且通常比所有应用程序都长… 当Simliar对象存储在不同的表中时,原因可能是它们实际上表示相同的域对象,但处于不同的状态,或者在工作流的不同步骤中。然后将它们保存在一个表中并添加一些简单的属性来标记状态通常是有意义的。如果工作流或其内容发生更改,也更容易更改数据库和应用程序,您可能不需要添加更多的表或类。 |
![]() |
blogger13 · 视频租赁店数据库的规范化 8 月前 |
![]() |
ì¤ì¤í · 为什么LEFT INNER JOIN被弃用? 9 月前 |
![]() |
relatively_random · 确保两个表之间一致的共同参考 9 月前 |
|
Grenish Rai · Firestore错误“用户文档不存在” 1 年前 |
![]() |
Saijo-Shi · PLpgsql中的更新触发器 1 年前 |
![]() |
Dante · Django::配置不当:池不支持持久连接 1 年前 |
![]() |
YouLocalRUser · 删除重复行,保留第一行 1 年前 |