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

标签 database inheritance entity-relationship

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

让我用一个例子来解释。在举重比赛中,举重运动员做两种不同的 Action :“抓举”和“挺举”。他们每一步都有 3 次尝试。我按照以下方式对此建模:

enter image description here

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

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

最佳答案

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

  1. 移动 表格。列:FirstTrySecondTryThirdTryBestTryMoveTypeId
  2. MoveType 表。列:MoveTypeIdMoveTypeNameMoveTypeDescription

然后简单的 Move 有一个到 MoveType 表的外键。

关于database - 当子实体具有相同的属性(ER 图)时应该使用继承吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46025250/

相关文章:

ruby-on-rails - 更新属性 'undefined method ` +' for nil:NilClass'

android - 安全图像存储安卓

c# - 如何使用c#检查mysql表中是否存在某个值并在c#中打开另一个表单

java - 尝试通过继承来扩展类,但不断出现错误

mysql - 外键还是复合键?

Amazon Web 服务器中的 mySQL 连接

javascript - 一个(有点晦涩的)Javascript 继承问题

c++ - 错误 C2660 : 'Aba::f' : function does not take 0 arguments

图表中的 MySQL CREATE TABLE 语句

java - 如何在 Hibernate 中的同一个表上建模 ManyToOne 和 ManyToMany 关系?