![](/img/trans.png)
[英]Database Design: How do I handle tracking goals vs. actuals over time?
[英]How do I design a database to store changes over time?
該數據庫將存儲子項列表。 但是問題是,他們每天要測量一次體重。 如何存儲更改,以便可以輕松查詢它們的實際體重以及一天,一周和一個月內的體重變化?
我認為類似以下內容:
table kid
int pkey(id)
text name
table weight
date when
int kidid fkey(kid.id)
int weight
int pkey(id)
您需要“孩子”表和“體重”表之間一對多的關系。
Child Table
-----------
ID (Generated) (PK)
Name
WeightTable
-----------
ID (Generated) (PK)
Date
Weight
ChildID (FK)
這已經很晚了,我認為我正在使它變得比我需要的更加復雜。 而且我有把握地確定您可以在“孩子”和“體重”之間進行一對多。 每次給孩子稱重時,都要重新輸入。
您可能還希望設置一些僅顯示當前權重的視圖(基本上是存儲的選擇操作),或設置其他常見查詢的視圖,從而將實現與用戶隔離。
現在如果這是我,並且我有很多孩子要跟蹤,我可能會保留一個緩存表,其中包含頻繁查詢的結果,但這可能是一個過大的殺傷力。
兩張桌子。 第一個,例如孩子,應該有一個id列,並包含每個孩子的信息,例如姓名,年齡等。第二個應該稱為“兒童體重”。 每行包含三件事。 兒童表中兒童的ID,體重和進行測量的時間。 然后,您可以使用sql查詢children_weights表以選擇子項的權重范圍,例如從1月1日開始到1月8日結束,然后對它們進行任何操作。 或者,甚至可以讓sql查詢返回其平均值或總和。
ID(生成的)(PK)
文字名稱
浮動InitialWeight
ID(生成的)(PK)
日期日期
浮動ChangeInWeight
ChildID(FK Child.ID)
僅在ChangeInWeight <> 0時存儲。
從WeightTable關系中查詢日期范圍內的Sum(ChangeInWeight)以查找變化,並查詢IntitalWeight + Variation,如上至Actualweight。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.