2016-12-13 2 views
1

Я хочу хранить будние дни в моей базе данных (воскресенье, ..., пятница) Какой тип данных я должен использовать? спасибо :)DAYS datatype in mySql

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

Есть 7 дней, почему не INT 1-7? – AbraCadaver

ответ

3

Как насчет колонки с номером ENUM? http://dev.mysql.com/doc/refman/5.7/en/enum.html

Из документации:

ENUM представляет собой строковый объект со значением, выбранным из списка разрешенных значений, которые перечисляются в явном виде в колонке спецификации во время создания таблицы. Она имеет следующие преимущества:

  • Компактное хранение данных в ситуациях, когда колонна имеет ограниченный набор возможных значений. Строки, которые вы указываете в качестве входных значений, - , которые автоматически кодируются как числа. См. Раздел 12.8 «Хранилище типа данных Требования» для требований к хранению для типов ENUM.

  • Считываемые запросы и выходные данные. Цифры возвращаются к соответствующим строкам в результатах запроса.

Так что ваше определение таблицы будет выглядеть следующим образом:

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

ОК, я проверю это, спасибо – Angela

+0

Да, согласен, Enum был бы хорошим выбором, хотя считал бы, что данные статичны. – Rahul