【问题标题】:ER/Data modelling (Link between inherited typesER/数据建模(继承类型之间的链接
【发布时间】:2011-09-28 03:13:39
【问题描述】:

是否有可能(或者出于任何原因是非法的)有这样的东西:

这基本上是一个与自身有外键关系的 ISA 类。

这个想法是输出消息只是简单的消息。但是每条消息(或者我们称之为输入消息)都有一个关联的输出消息。这就是外键关系的需要。

这样可以吗,如果不行,为什么不呢?还是有更好的建模方法?

谢谢。

【问题讨论】:

  • 不是“非法的”,但如果它确实是强制性的 1:1,那么将两者放在一个表中可能会更有效率。所以每一行将包含一个消息及其对应的输出消息。另外,“ISA” rel 真的正确吗?即Output Message 真的以某种方式扩展Message 吗?还是输入和输出消息具有相同的结构和行为,但您需要能够将每个输入与其输出相匹配?

标签: database-design data-structures entity-relationship data-modeling


【解决方案1】:

“输出消息”实际上是“消息”的特化。如果包含其他类型的消息,例如“输入消息”,则案例会变得更加有趣。与多个备选方案的“isa”关系非常适合使用类继承的面向对象描述。

有三种主要的方法来设计关系来模仿类继承提供的模式。有一个表,在与手头的情况无关的所有属性中都插入了 NULL。有类表继承模型,其中每个子类都有自己的表,该表“扩展”(松散地使用这个词)主超类表,其中包含键和附加列的副本。第三种方法是一种妥协。

密钥的副本既是引用超类表的 PK 也是 FK。将值从超类表传播到子类表是通过编程完成的。基于简单连接的视图足以为您提供有关给定子类项的所有数据,无论这些数据来自超类表还是子类表。

【讨论】:

    猜你喜欢
    • 2011-03-27
    • 1970-01-01
    • 2022-06-13
    • 1970-01-01
    • 1970-01-01
    • 2012-06-28
    • 1970-01-01
    • 2012-12-06
    • 2011-11-25
    相关资源
    最近更新 更多