Какой дизайн лучше хранить дни в базе данных - PullRequest
0 голосов
/ 26 августа 2011

Я бы хотел, чтобы пользователь увидел дату про курс.Например, компьютерный курс будет проходить по

1/9, 2/9, 3/9.

Итак, как хранить эти дни в базе данных?в одном столбце хранится такая строка:

1/9/2011,2/9/2011,3/9/2011

или отдельная таблица, подобная этой:

event_id   date
1          1/9/2011
1          2/9/2011
1          3/9/2011

Спасибо.

Ответы [ 5 ]

4 голосов
/ 26 августа 2011

Почти каждая база данных под солнцем имеет тип данных DATE, который будет делать именно это.

Также: используйте нормализацию данных: отдельная таблица - путь.

4 голосов
/ 26 августа 2011

Отдельная таблица - это правильный дизайн, потому что именно так ваша схема будет нормализована.Столбец таблицы должен содержать один тип значения.

Первая нормальная форма состояний нормализации базы данных:

Каждое пересечение строк и столбцов содержит ровно однозначение из соответствующего домена (и ничего больше).

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

В столбце должно храниться только одно значение. Отдельный стол.

Как CSV, как вы можете

  • найти курс, начинающийся 2/9/2001
  • заказ по
  • удалить 2/9/2001, добавить 9/9/2011 и т. Д.
1 голос
/ 26 августа 2011

Я бы имел таблицу с (как минимум) 3 столбцами, используя тип date для даты начала и окончания

event_id start_date end_date
1         1/9/2011  3/9/2011
0 голосов
/ 26 августа 2011

оба метода имеют свои преимущества

первый метод подойдет для простой структуры данных,
это означает, что ваш размер данных может быть небольшим,
объем работ вашего проекта невелик,
и вы не хотите тратить слишком много усилий на это

плохое трудно поддерживать в долгосрочной перспективе

второй метод будет лучше для нормализации
но требуется больше кода / JOIN, чтобы получить ту же информацию
(вы можете сделать один шаг в первом методе)


Is BAD для строки даты в d/m/Y,
позвольте языку представления определить локаль

Формат ISO YYYY-MM-DD будет лучшим выбором

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...