Сохранять день недели в полях PHPMyAdmin? - PullRequest
1 голос
/ 29 августа 2011

У меня есть база данных с именем education1 , и все содержимое хранится в таблице курсы1

Это поля внутри курсов:

class VARCHAR(255),
classinfo VARCHAR(255),
dayofweek VARCHAR(255)

Однако я хочу сохранить день недели в ФОРМАТЕ ДАТЫ, посмотрел на http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html#function_str-to-date, но это было для запросов.

Мне интересно, как сохранитьдень недели, когда занятия проводятся с именованными днями, понедельник - пятница.

Я пробовал ENUM, но не позволял использовать символ тире для отображения: понедельник - пятница или вторник - среда

Ответы [ 3 ]

2 голосов
/ 29 августа 2011

Вы можете сделать одну из двух вещей (обратите внимание, что это рекомендуется, вы можете сделать целый ряд других вещей.):

  • Сохраните индекс дня как TINYINT (0-6) или (1-7) и парсите его в своем PHP-скрипте, чтобы отображать как названия дней.
  • Используйте ENUM, например:

    dayofweek ENUM('Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday')
    

    Это относится к запросу CREATE TABLE.

Как упоминалось выше, есть и другие вещи, которые вы могли бы сделать, вероятно, они будут наиболее эффективными и эффективными для вашей проблемы.

1 голос
/ 29 августа 2011

НЕ используйте ENUM.

НЕ используйте поле varchar 255 для хранения даты или строки длиной не более 12 символов (в зависимости от языка).

Если вы хотите сохранить представление дня недели в базе данных, сохраните его в формате, который вы можете использовать в запросе для разыменования значения даты. MySQL имеет функцию для этого - DAYOFWEEK (дата)

Затем, если необходимо, сохраните таблицу, отображающую их обратно в строки.

0 голосов
/ 29 августа 2011

Просто используйте SMALLINT (1) и все.Насколько я помню, неделя получила 7 дней.Итак: 1-7 значений.И почитай про нормализацию.Я думаю, что где Class, там должен быть class_id.

Итак, это должно выглядеть так:

curses1

id | class_id | dayofweek

классов

id | name | info

Запрос: SELECT L.dayofweek, R.name, R.info FROM curses1 L LEFT JOIN clases R ON L.class_id = R.id

...