: Database issue, how to store changing data structure
我有另一个问题。
让我说我有一个锻炼:
first set: 60 push ups
second set : 55 push ups
third set: 50 push ups
firth set: 45 push ups
and so on..
我认为为每一套制作一个条目是浪费, 但做这样的事情:
workout_id tabindex repeat quantity quantity_unit activity
1 1 3 60,55,50,45 pcs pushups
1 2 1 2 minutes rope-jumping
似乎是原始的。
有什么建议吗?
答案 0 :(得分:1)
这不是原始的。它被标准化了。如果你这样做,你可以轻松地告诉你曾经做过多少次俯卧撑,或者每套俯卧撑的平均数。
每条记录一套是最灵活的方式,您可以获得更有意义的数据。不要以逗号分隔保存。你正在打败关系数据库的目的。如果你想存储这样的数据,请使用couchdb。
答案 1 :(得分:1)
您可以随时将数量放在自己的表中,然后最终得到如下数据:
tblWorkouts:
----------------------------
workout id activity etc
----------------------------
1 pushups ...
tblQuantities
------------------------------
qID workout_id quantity
------------------------------
1 1 60
2 1 55
3 1 50
4 1 45
数量与锻炼表中的正确记录相关联,与锻造数据库相关联 - 这就是关系数据库中的关系: - )
这使您可以灵活地处理数据库中的数据。这样它存储为数字,而不是逗号分隔的字符串,如果你想从中获取任何类型的有意义的数据,你必须解析它。
答案 2 :(得分:0)
数据库设计中最重要的一点是最大限度地减少冗余。你所描述的是我与之合作的很多人会解决同样问题的方式。
我建议的一件事是将quantity_unit
和activity
抽象到他们自己的表中,因为activity
总是由同一个quantity_unit
来衡量,并且将它们分开意味着您只需要在某个表中存储一次活动的名称。