0

我正在研究一个数据库,我试图在其中推断出应用继承的最佳方法。

到目前为止,我有 2 个来自实体的子类,我在扩展实体关系模型中询问表(子类)如何在关系表上实现它。

我决定使用混凝土表,所以我创建了 2 个表,每个表用于实体的每个子类。我遇到了2个问题:

  1. 我的主键是id int primary key autoincrement,这意味着每个表的第一行都会有id = 1。所以键实际上并不是唯一的,所以当从另一个表中引用它时,没有办法知道我们引用了 2 个表子类中的哪一个(除非我添加了一个不必要的(?)额外列。

  2. 添加引用 saidid的外键时,外键应该引用两个子类表,但我不知道这是否可能。

关于如何做到这一点的任何想法或意见都会有很大帮助。谢谢

4

1 回答 1

1

让子类表引用父类可能是有意义的,而不是相反。然后,您可以在 Entity 表上有一个 id 列,该列是唯一的,并且是从子实例到其父实例的外键。当您想使用数据来实例化代码中的对象时,这可能也会有所帮助,因为您应该知道您正在实例化哪个类并且只关心它的祖先,而不是它的孩子。

于 2013-07-20T04:30:37.067 回答