我想知道,在对数据库建模时,如果子实体具有完全相同的属性,是否应该使用继承?
让我用一个例子来解释。在举重比赛中,举重运动员做两种不同的 Action :“抓举”和“挺举”。他们每一步都有 3 次尝试。我按照以下方式对此建模:
起初,这对我来说很有意义,因为这两个 Action 有很多共同的属性,这些属性都在名为 Result 的父实体中。但是,“Snatch”和“CleanAndJerk”也具有完全相等的属性。这似乎是多余的。不过,将所有内容都放在“结果”实体中似乎也好不了多少。
在设计数据库时,这是一个好的选择吗?
最佳答案
在这种情况下,您真正需要的是多态表。
我认为这样做会更好:
移动
表格。列:FirstTry
、SecondTry
、ThirdTry
、BestTry
、MoveTypeId
。MoveType
表。列:MoveTypeId
、MoveTypeName
、MoveTypeDescription
。
然后简单的 Move
有一个到 MoveType
表的外键。
关于database - 当子实体具有相同的属性(ER 图)时应该使用继承吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46025250/