簡體   English   中英

用於每周更新數據的數據庫設計

[英]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_iddatetemp 如果只包括星期日,那就可以了。 然后,您可以使用類似

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM