我正在跟踪练习。我有锻炼表
现在,像体重训练这样的练习会有以下几个方面: 体重,代表(我刚刚举起10次@ 100磅。)
和其他类似的运动会有以下字段:时间,距离(我跑了5英里就需要1小时)
我应该将这些全部存储在同一个表中,只是让一些记录中填写了2个字段,其他字段为空或者应该分解为多个表。
在一天结束时,我想查询一天中的所有练习(包括两种类型的练习),所以我必须在某处“切换”以区分不同类型的练习
针对这种情况的最佳数据库设计是什么
答案 0 :(得分:3)
在数据库表中建模面向对象的继承有一些不同的模式。最简单的是Single table inheritance,在这种情况下可能会很好用。
实施它主要是根据您自己的建议填写一些字段,其他字段为空白。
答案 1 :(得分:0)
这样做的一种方法是拥有一个带有“type”字段的“exercise”表,该字段命名另一个表格,其中包含特定于练习的详细信息,以及该表中的外键。
答案 2 :(得分:0)
如果您打算只保留2种类型,只需exercise_id, value1, value2, type
你可以在where子句中过滤练习的类型,并在同一个参数中对列名进行别名,这样结果就不会说value1和value2,而是重量和代表或时间和距离