DB Efficiency,php应用程序

时间:2010-08-22 05:51:46

标签: php mysql

在得到我的回答之后

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

似乎是原始的。

有什么建议吗?

3 个答案:

答案 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_unitactivity抽象到他们自己的表中,因为activity总是由同一个quantity_unit来衡量,并且将它们分开意味着您只需要在某个表中存储一次活动的名称。