此数据库将存储子项列表。但问题是,他们每天会测量一次体重。如何存储更改,以便我可以轻松查询一天,一周和一个月的实际重量和重量变化?
答案 0 :(得分:5)
我认为如下:
table kid
int pkey(id)
text name
table weight
date when
int kidid fkey(kid.id)
int weight
int pkey(id)
答案 1 :(得分:2)
您需要“子”表和“权重”表之间的一对多关系。
Child Table
-----------
ID (Generated) (PK)
Name
WeightTable
-----------
ID (Generated) (PK)
Date
Weight
ChildID (FK)
现在已经很晚了,而且我觉得我做得比我需要的要复杂得多;而且我有理由相信你可以在孩子和体重之间做一对多。每次你给孩子称体重,都要重新开始。
答案 2 :(得分:1)
您可能还想设置几个视图(基本上存储的选择操作),这些视图仅显示当前权重,或者显示其他常见查询的视图,从而将实现与用户隔离开来。
现在,如果这是我,并且我有大量的孩子要跟踪,我可能会保留一个缓存表,其中包含频繁查询的结果,但这可能是一种过度杀伤。
答案 3 :(得分:0)
两张桌子。第一个,比如孩子,应该有一个id列和关于每个孩子的信息,如姓名,年龄等。第二个应该被称为像儿童权重。每行包含三件事。来自儿童表的孩子的身份,体重和测量的时间。然后你可以使用sql来查询children_weights表,为孩子选择一系列的权重,比如从1月1日开始到1月8日结束,并用它们做任何事情。或者你甚至可以让sql查询返回它的平均值或总和。
答案 4 :(得分:0)
ID(生成)(PK)
文字名称
浮动InitialWeight
ID(生成)(PK)
日期日期
浮动ChangeInWeight
ChildID(FK Child.ID)
仅在ChangeInWeight<>时存储0
查询总和(ChangeInWeight),其中日期范围从WeightTable关系到查找变异,查询IntitalWeight + Variation如上所述为Actualweight。