Mysql
創建 24 小時數據表 - 建議/改進
我打算有一個表格來儲存基於每小時的數據,簡而言之,我有一個包含 24 小時數據的文件,我需要使用它來填充每小時的條形圖/折線圖。
下面是一個範例 24 小時數據文件
08/18/2014: 00:00 UTC,2108,259,39786,59,32,501 08/18/2014: 01:00 UTC,2461,358,50456,28,34,670 08/18/2014: 02:00 UTC,2929,501,65487,41,69,983 08/18/2014: 03:00 UTC,2903,545,68849,88,66,1004 08/18/2014: 04:00 UTC,2796,385,65972,32,59,917 08/18/2014: 05:00 UTC,2860,633,67756,16,59,976 08/18/2014: 06:00 UTC,3053,756,77406,136,74,1190 08/18/2014: 07:00 UTC,3889,757,100002,57,114,1657 08/18/2014: 08:00 UTC,4389,808,120638,75,130,1916 08/18/2014: 09:00 UTC,4243,1029,141171,108,139,2198 08/18/2014: 10:00 UTC,4132,1118,135581,104,132,2079 08/18/2014: 11:00 UTC,3964,784,120932,78,112,1903 08/18/2014: 12:00 UTC,3893,842,123153,125,101,1844 08/18/2014: 13:00 UTC,4537,939,141358,51,149,2263 08/18/2014: 14:00 UTC,4897,1067,169224,105,136,2693 08/18/2014: 15:00 UTC,5068,1276,183193,199,140,2827 08/18/2014: 16:00 UTC,4816,1028,177811,333,151,2590 08/18/2014: 17:00 UTC,4359,890,154355,257,121,2159 08/18/2014: 18:00 UTC,4204,792,147255,238,88,1988 08/18/2014: 19:00 UTC,4858,894,148851,306,119,2113 08/18/2014: 20:00 UTC,4371,835,147524,280,133,2014 08/18/2014: 21:00 UTC,4531,702,136845,308,112,1861 08/18/2014: 22:00 UTC,3685,654,107627,174,68,1475 08/18/2014: 23:00 UTC,3170,468,86662,226,70,1073
我的表結構是
CREATE TABLE hourly_data ( id INT PRIMARY KEY AUTO_INCREMENT, date DATE NOT NULL, hour INT NOT NULL, f1 INT NOT NULL, f2 INT NOT NULL, f3 INT NOT NULL, f4 INT NOT NULL, f5 INT NOT NULL, f6 INT NOT NULL, inserted timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP )
這會是一個好方法嗎?我將需要檢索兩個時間戳之間的數據、給定小時的數據等。我最初想為每個小時設置一列,這樣我在給定的一天就只有一行,而不是 24 行。
歡迎提出建議/改進。
您的實體基於小時,而不是天,因此您應該像您所做的那樣每小時一排,而不是連續一整天。
我不明白當您說兩個時間戳之間的數據時,時間戳是指“插入”列,還是指數據文件上的日期和時間。如果是後者,那麼為您的日期和小時設置一個日期時間列,而不是兩個單獨的列,將有助於您進行比較。您可以在此日期時間列上放置一個索引,當您想要獲取兩個日期時間甚至一個特定日期時間之間的數據時,它會為您提供超快的結果。