[英]database design for updating data weekly
我發現很難解釋我要問的問題,所以我創建了一個假設性的問題(以臨時為依據),也許我的問題仍然不是很清楚,但是請看一下。 讓我知道您是否需要任何澄清
我想比較上周日的溫度和3周前(周日)的溫度,因此它應該顯示如下內容。 選擇選項中會有兩個日期,所以我想分析上一個星期日之前的星期日的溫度,
<select> <option> Last Sunday (2017-12-03) </option> <option> Previous Sunday (2017-11-26) </option> </select> <h1> Temp on 2017-12-03 </h1> <p> 24 C </p> <h1> temp 3 weeks ago (2017-11-12)</h1> <p> 24.4 C</p> <h1> Change in temp </h1> <p> .4 </p>
假設我只能在當前星期日獲得臨時溫度,所以我需要每周(在每個星期日)更新此數據庫。
city_id sunday_temp temp_pre_week1 temp_pre_week2 temp_pre_week3 last_sunday_date
1 24.0 24.3 35.2 24.4 2017-12-03
1 24.3 35.2 24.4 28.0 2017-11-26
2 3.0 4.0 2.0 6.0 2017-12-03
2 4.0 2.0 6.0 7.0 2017-11-26
.
.
around 2000 rows
我認為可以將數據保存4周的另一個選項,因此,當用戶選擇上一個周日之前的周日時,我將能夠使用第4周列,就像這樣
city_id sunday_temp temp_pre_week1 temp_pre_week2 temp_pre_week3 temp_pre_week4 last_sunday_date
1 24.0 24.3 35.2 24.4 28.0 2017-12-03
2 3.0 4.0 2.0 6.0 7.0 2017-12-03
.
.
我只想分析兩個星期天,所以我認為再增加一列會更有效,
謝謝 :)
不要在每一行中存儲查詢的所有數據。 讓數據庫為您完成工作。 您的數據庫結構應僅包含city_id
, date
和temp
。 如果只包括星期日,那就可以了。 然后,您可以使用類似
SELECT `temp`,`date` FROM `citydata` WHERE (`city_id` = 1) and (`date` <= '2017-12-03') ORDER BY `date` DESC LIMIT 4
它將檢索2017-12-03或之前可用於城市1的最后4條記錄。 如果您有每個星期日的數據,則將獲得特定日期(“最后一個星期日”)加上前3周的數據。 如果您決定要更多-只需將LIMIT更改為5或6即可。 如果您以后決定添加一周中的其他日期,則不必更改數據庫結構(盡管您需要稍微調整一下查詢)。 最重要的是,您在收集新數據時無需查看以前的記錄-您只需添加新記錄並在實際需要它們時獲取前幾周的數據即可。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.