我想知道,在建模数据库时,如果子实体具有完全相同的属性,是否应该使用继承?
让我举个例子来解释一下。在举重比赛中,举重运动员做了两个不同的动作:“抢夺”和“清洁和挺举”。他们每次搬家都有三次尝试。我用以下方式对此进行了建模:
起初,这对我来说很有意义,因为这两个动作有很多共同的属性,它们在名为Result的父实体中。但是,“Snatch”和“CleanAndJerk”也具有完全相同的属性。这似乎是多余的。但是,将所有内容放在“结果”实体中似乎也不是更好。
在设计数据库时,这是一个不错的选择吗?
答案 0 :(得分:1)
在这种情况下,您真正需要的是一个多态表。
我认为如果你这样做会更好:
Move
表。列:FirstTry
,SecondTry
,ThirdTry
,BestTry
,MoveTypeId
。MoveType
表。列:MoveTypeId
,MoveTypeName
,MoveTypeDescription
。然后简单Move
有一个外键到MoveType
表。