Никогда не разбивайте дату на отдельную базу данных полей. Это вещь: дата. Он находится в базе данных как одно поле даты.
Вы не разбиваете сумму на отдельные поля базы данных за доллары и центы. Как бы вы делали математику? Вам нужно будет восстановить номер из кусков.
Вы не разбиваете другие номера в отдельных полях базы данных для отдельных цифр. Как бы вы делали математику? Вам нужно будет восстановить номер из кусков.
То же самое касается дат. Вам редко нужны кусочки. Когда вы это сделаете, простые функции предоставят куски. Вам чаще всего нужна вся дата, чтобы выполнить математику.
Кроме того, части даты (в частности, месяц и день) имеют такие сложные отношения (от 28 до 31 дня в месяц, основанные на кажущихся случайными правилами), которые вы никогда не хотите пытаться выполнить арифметику даты в своем собственном прикладном программном обеспечении. Используйте библиотеки. Используйте библиотеки баз данных.
Дисплей пользовательского интерфейса может иметь отдельные поля, чтобы сделать его «проще» для пользователей. [Лично я нахожу много полей, чтобы быть много визуального беспорядка.] Но в базе данных не должно быть отдельных полей.
Я согласен с частью проверки, которой становится трудно управлять, если они управляются отдельно – Sam
@Samuel: не «трудно»: «невозможно». Расчеты по дате действительно трудно получить. Вычисление вычислений даты вне методов данных БД настолько сложно, что я предпочитаю называть это «невозможным». –