2016-12-13 7 views
1

(平日、...、金曜日)のようなデータベースに平日を保存したい どのデータ型を使用する必要がありますか?ありがとう:)mySqlのDAYSデータ型

CREATE TABLE Operations(

    operation_id  int not null AUTO_INCREMENT, 
    PRIMARY KEY(operation_id), 
    openingtime  time, 
    closingTime  time, 
    operationDay  ????? 
    restaurant_id  int, 
    FOREIGN KEY(restaurant_id) 
    REFERENCES restaurant(restaurant_id) 
    ON UPDATE CASCADE 
); 

example 

id = 1 
openingtime = 7:00am 
closingTime = 10:00pm 
operationDay = monday 
restaurant_id = 2 

日時を保存する目的で、私はレストランが開いているか、リアルタイムに近いかどうかを表示したいと思います。

+0

1-7をint型ではない理由を7日には、ありますか? – AbraCadaver

答えて

3

ENUMタイプの列はどうですか?ドキュメントからhttp://dev.mysql.com/doc/refman/5.7/en/enum.html

ENUMは、テーブル作成時にカラム 明細書に明示的に列挙され 許容値のリストから選択された値を持つ文字列オブジェクトです。これは、これらの利点を有する:

  • 列が 可能な値の限定されたセットを持っている状況でコンパクトなデータ記憶装置。入力値として指定する文字列は、数字として自動的にエンコードされた です。 ENUMタイプの記憶域要件については、第12.8項「データ型記憶域 要件」を参照してください。

  • 読み取り可能なクエリと出力。数値は、クエリ結果の対応する文字列の に変換されます。

だからあなたのテーブル定義は、次のようになります。

CREATE TABLE Operations(
    ... 
    operationDay  ENUM('monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday', 'sunday'), 
    ... 
); 
+0

ok私はそれをチェックします、ありがとう – Angela

+0

はい、同意します。データが静的であると考えてもEnumは良い選択になります。 – Rahul