2012-03-12 8 views
0

私は学校用の空調スケジューラのウェブサイトを作っています。ユーザーは、1日を通して30分間の間隔のいずれかに温度と湿度の設定を週7日間追加することができます。たとえば、日曜日の午後3時30分には、ヒーターではなくクーラーが70度、湿度指数が15分の家を冷やすことが望ましいと言えるでしょう。私は、このようなコマンドを処理するためにMySQLテーブル(またはテーブル)を設定するアドバイスを使用することができました。私が心配しているすべての潜在的な設定のための個々の変数ではなく、むしろ7日間すべての時間を処理します。MySQLのタイムテーブルのデータ構造

これまでのところ、私はスケジューラと呼ばれる大きなテーブルを1週間にわたって扱うことを考えていました。 7日間の曜日とタイムスロットは、time_slotというVARCHARカラムに入ることができ、曜日とタイムスロットの両方にミリタリー時間がかかります。例えば。

time_slot (a VARCHAR column) 
sunday_0000 (this is sunday at midnight) 
..... 
sunday_1630 (this is sunday at 4:30 pm) 
..... 
sunday_1130 (this is the final possible sunday time slot at 11:30 PM) 
monday_0000 (this is the start of monday) 
(continue for all seven days) 

テーブルの残りの列は、ユーザが次の潜在的タイムスロットの前に完全な30分30秒からの期間と同様に、置くことができるすべての必要な設定になります。誰かがより効率的なMySQLテーブルのアイディアを持っていますか?おそらく、それは自分のテーブルである個々の日を与える何か?

+0

アプリケーションでこのデータの複数のセットを管理しているのでしょうか、それとも1つのみですか?複数の場合、セットはどのようにキー入力されますか(user_id、room_id、house_idなど)? – nnichols

答えて

1

TINYINT(1-7)とTIME(00:00-23:59)を使用して、複数の列を持つことを検討してください。このようにして、各日の時間を個別に設定することも、すべてを一度に設定することもできます。

UPDATEスケジューラ ... TIME = '12:00 ';

+0

0-6 MySQLの['WEEKDAY()'](http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_weekday)関数はこの番号付けを使用します。 –