Я понимаю, что столбец с именем EventDate
в таблице с именем Events
(который, согласно всем соглашениям с БД, которые я когда-либо изучал, должен называться Event ...;)) является избыточным, но учтите:
У вас есть таблица Event
со столбцом Date
и таблица Booking
, записи которой представляют бронирование места клиентом на мероприятии, также с Date
столбец (который в данном контексте относится к дате, когда место было забронировано ):
SELECT e.Date AS EventDate, b.Date AS BookingDate, [...]
FROM Event e
JOIN Booking b ON b.EventId = e.Id
Необходимость учитывать неоднозначные имена столбцов в каждом таком запросе является штрафомкоторый может (и делает , по моему мнению) перевешивать предполагаемую избыточность Event.EventDate
.
Рассмотрим еще один аргумент, который мы можем применить к именам столбцов идентификаторов в каждой таблице:PK в Event
EventId
вместо простого Id
позволяет нам написать этот критерий JOIN:
JOIN Booking b ON b.EventId = e.EventId
, который мы можем сразу увидеть, ссылается на правильные столбцы.
InРезюме, если мы должны принять решение между вызовом тВ столбце Date
или EventDate
последний имеет много преимуществ:
- Как указывает @Benjamin Seiller, столбец должен определять значение столбца, а не обязательно его тип данных
- Кроме того, что происходит, когда у вас есть таблица с тремя различными полями даты, представляющими даты, относящиеся к сущности?Если вы не называете их все по их значению , теперь вы должны вспомнить, какое поле означает что ...
- Как только мы захотим запросить несколько таблиц, двусмысленные имена столбцовсуществующие проблемы
- Если столбцы, которые появляются в нескольких таблицах (например, внешние ключи), имеют явные и идентичные имена, наш синтаксис запросов становится немного более устойчивым к ошибкам (таким как объединение в неправильном столбце)
При выборе имен столбцов учитывайте все ситуации, в которых ваша таблица может использоваться.В этом случае я буду утверждать, что преимущества предоставления контекстно-зависимой информации в имени столбца намного перевешивают избыточность повторения имени таблицы.