sql - 当您有两种类型的记录时,该表的最佳数据库设计是什么

标签 sql database-design

我正在跟踪练习。我有一个锻炼 table

  • id
  • exercise_id(练习表中的外键)

现在,一些练习(例如举重训练)将包含以下字段: 重量,次数(我刚刚举起 10 次 @ 100 磅。)

运行等其他运动会有字段:时间、距离(我刚刚跑了 5 英里,花了 1 小时)

我应该将这些全部存储在同一个表中,并且只让一些记录填写 2 个字段,其他字段为空,还是应该将其分解为多个表。

在一天结束时,我想查询一天中的所有练习(其中包括两种类型的练习),因此我必须在某个地方有一些“开关”来区分不同类型的练习

针对这种情况最好的数据库设计是什么

最佳答案

有几种不同的模式可用于在数据库表中建模面向对象的继承。最简单的是Single table inheritance ,在这种情况下可能会很有用。

实现主要是根据你自己的建议,有些字段填写,其他字段空白。

关于sql - 当您有两种类型的记录时,该表的最佳数据库设计是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2397916/

相关文章:

sql - 在 postgresql 中四舍五入列值

mysql - 是将表分解并创建具有 3 列 + 外部 ID 的新表,还是只使其成为 n+3 列并且不使用连接更好?

c# - 什么时候将标志存储为位掩码比使用关联表更好?

sql - 车辆识别码(VIN)设计

sql - 如何将行更改为列?

python - Python 中的 Sqlite3 模块比 Shell 中的 SELECT 慢得多

sql - 从我的航空公司数据库中查找超过两条中间路线的联程航类

mysql - 数据库层次结构 - 不同的节点表示

sql - MYSQL 大 LIMIT 偏移量

sql - 是否可以在 Symfony3 中的实体内定义自定义 SQL 查询