当子实体具有相同的属性(ER 图)时应该使用继承吗?

Should inheritance be used when sub-entities have the same attributes (ER-diagrams)?

我想知道,在对数据库建模时,如果子实体具有完全相同的属性,是否应该使用继承?

我举个例子说明一下。在举重比赛中,举重运动员做两种不同的动作:"Snatch" 和 "Clean and jerk"。他们每一步都有 3 次尝试。我按以下方式对此建模:

起初,这对我来说很有意义,因为这两个动作有很多共同的属性,这些属性都在名为 Result 的父实体中。但是,"Snatch"和"CleanAndJerk"也有完全相等的属性。这似乎是多余的。不过,将所有内容都放在 "Result" 实体中似乎也好不了多少。

设计数据库时,这是一个不错的选择吗?

在这种情况下,您真正​​需要的是多态 table。
我认为这样做会更好:

  1. Movetable。列:FirstTrySecondTryThirdTryBestTryMoveTypeId.
  2. MoveTypetable。列:MoveTypeIdMoveTypeNameMoveTypeDescription.

那么简单 Move 有一个 MoveType table 的外键。