0

我的类图中的某些类之间有这种泛化关系。FirstClass 作为具有 Name 属性的基类,SecondClass 作为派生类,FirstClass 是它的基类并具有一些其他属性,最后是 ThirdClass 是 SecondClass 的派生类,它也具有一些其他属性。ThirdClass 作为与 Widget 类 1.* 的关联关系。

在此处输入图像描述


当我想从类图中实现数据模型时,我使用了 Joined 策略。所以 FirstTable 在 SecondTable 中有它们的 Pk,而 SecondTable 在 ThirdTable 中有它的 PK。如您所见,第三张表应该在 Widget 类中有它的 PK。每当我想将小部件表与第三个表连接时都会产生一些成本,因为我需要从第一个表中获取名称。

我从 FirtTable (实际上它是基类)中读取 Id 并将其放入 Widget 表中是否合适?


4

1 回答 1

1

我认为问题在于,如果这样做,则无法阻止 Widget 与不是 ThirdTable 实例的 FirstTable 实例相关联。

也许您可以同时放置 ThirdTable id 和 FirstTable id,但在这种情况下,您必须管理安全控制以确保两个 id 之间的一致性。

在这两种情况下,我都反对。如果连接成本对您来说是个问题,您应该考虑使用“单表”继承策略。

于 2013-04-10T16:14:18.247 回答