Я знаю, что это поздно для игры, и на этот вопрос уже дан очень хороший ответ, но я хочу высказать свое мнение по поводу № 3 относительно префикса имен столбцов.
Все столбцы должны иметь префикс, уникальный для таблицы, в которой они определены.
Например. Учитывая таблицы «клиент» и «адрес», перейдем к префиксам «cust» и «addr» соответственно. "customer" будет содержать "cust_id", "cust_name" и т. д. "адрес" будет содержать "addr_id", "addr_cust_id" (FK обратно клиенту), "addr_street" и т. д.
Когда мне впервые представили этот стандарт, я был категорически против него; Я ненавидел эту идею. Я не мог вынести мысли о лишнем печатании и избыточности. Теперь у меня достаточно опыта, чтобы никогда не вернуться.
В результате все столбцы в схеме базы данных уникальны. В этом есть одно важное преимущество, которое превосходит все аргументы против (на мой взгляд, конечно):
Вы можете выполнять поиск по всей базе кода и надежно находить каждую строку кода, касающуюся определенного столбца.
Выгода от №1 невероятно огромна. Я могу отказаться от столбца и точно знать, какие файлы необходимо обновить, прежде чем столбец можно будет безопасно удалить из схемы. Я могу изменить значение столбца и точно знать, какой код нужно отредактировать. Или я могу просто определить, используются ли данные из столбца в определенной части системы. Я не могу сосчитать, сколько раз это превращало потенциально огромный проект в простой, или сколько часов мы сэкономили на разработке.
Еще одно относительно небольшое преимущество заключается в том, что вам нужно использовать псевдонимы таблиц только при самостоятельном соединении:
SELECT cust_id, cust_name, addr_street, addr_city, addr_state
FROM customer
INNER JOIN address ON addr_cust_id = cust_id
WHERE cust_name LIKE 'J%';
person
Granger
schedule
02.09.2011