Прежде всего, я хочу аплодировать вам за определение стандарта.Нет конца тому, сколько это будет вам помогать в будущем.
Сказав это, пара очень субъективных мнений с моей стороны:
Я не люблю вставлятьвведите информацию в имена, такие как «TABLE_PERSON» или «PERSON_T», потому что это сбивает с толку, как только вы заменяете таблицу видом.В этот момент вы, конечно, могли бы искать и заменять «PERSON_T» на «PERSON_VW», но это как бы упускает из виду :) То же самое касается столбцов (хотя я не вижу этого в вашем примере).Подумайте о столбце "n_is_dead", который был изменен с числового на varchar.
Может ли строка существовать в таблице без создания (create_timestamp)?Объявите столбцы как NOT NULL, если они действительно не могут быть нулевыми.Фактически, я начинаю иметь NOT NULL в большинстве моих столбцов, потому что это заставляет меня задуматься о природе данных.
Я фанат именования столбца первичного ключа чем-то, кроме ID.Например,
company(company_id, etc)
person(person_id, company_id, firstname etc)
Я слышал, что у некоторых людей есть проблемы с O / R-преобразователями, которые хотят, чтобы у вас всегда был первичный ключ с именем "ID", но я не знаю, по-прежнему ли этоtrue, если это недавно изменилось.
Мне неясно, намеревались ли вы встраивать (s, n, c) в имена столбцов, чтобы указать, являются ли они суррогатным, естественным или общим ключом.Но я также не думаю, что это хорошая идея.Я чувствую, что это "раскроет" некоторые детали реализации, которые не вписываются в логическую модель естественным образом.
Похоже, вы выставляете / внедряете отношение внешнего ключа в имена столбцов.Я никогда не думал об этом, но я думаю, вы глубоко пожалеете об этом.Если не только потому, что это делает имена столбцов невыносимо уродливыми:)
При выборе имени для индекса.Единственный раз, когда я сожалею о присвоении имени индексу, это когда я смотрю на план выполнения и вижу, что «index_01» используется.Я всегда хотел бы, чтобы я поместил имя столбца в индекс, чтобы сделать его видимым в xplan.Я не знаю ограничения для имени индекса, но я всегда сталкиваюсь с ограничением в Oracle.Итак, попробуйте придумать какое-то правило, как сокращать имя таблицы.Здесь важно знать имя столбца.
Относительно смешанного регистра.Я всегда (без исключений) хожу с ALL_UPPER_CASE или all_lower_case.Причина в том, что в прошлом я был сожжен при переносе запросов между базами данных, когда они по-разному относятся к делу.В последнее время я использую all_lower_case, потому что типичный шрифт наших редакторов облегчает обнаружение орфографических ошибок в нижнем регистре, чем в верхнем.И когда я терплю неудачу, кажется, что редактор не кричит на меня;)