2010-04-26 2 views
0

Я задал аналогичный вопрос на прошлой неделе и не получил очень хорошего ответа, поэтому, возможно, я не правильно сформулировал вопрос.SQL Server - Какие правила кодирования/разработки существуют в вашей команде?

Я хотел бы знать, какие процессы/политики/правила имеют ваша команда для написания кода T-SQL и схемы базы данных. Вот несколько примеров:

1) All foreign key columns should be indexed 
2) All primary key columns should be integer Identity 
3) All stored procedures/user defined functions need comments 
4) No underscores in T-SQL variable names 

Это те вещи, которые мне интересны.

Спасибо!

+3

Это действительно сообщество вики. –

+0

Тот, кто пишет правила в камне, позже желает большой бутылки белого цвета! помимо форматирования/стиля/именования/исходного кода, просто придерживайтесь руководящих принципов, а не абсолютных правил. Возможно, вам понадобится использовать другой ПК (не идентичность в определенный день) или индекс в FK не нужен и т. Д. –

ответ

0
  1. Не совсем. У нас нет индексов на некоторых больших таблицах FK, потому что мы никогда не удаляем или не обновляем родительское значение или плохой избирательность

  2. В основном, но поймите, почему. Тем не менее, я бы использовал 3-значный код для таблицы, в которой хранятся коды валюты ISO, такие как CHF или GBP. И вам все равно понадобится уникальное ограничение для естественного ключа

0

Я не согласен с индексированием всех внешних ключей. Если у вас есть внешний ключ для главной таблицы из 3-х опций, в таблице с миллионами строк у вас есть огромные накладные расходы бессмысленных индексов. Обратный поиск от ключа к данным маловероятен.

0

Кажется, что # 1, # 2 и # 3 - все довольно плохие правила. Не всегда необходимо индексировать внешний ключ. Не имеет смысла создавать суррогатный ключ, когда существует хороший естественный ключ. Комментарии не компилируются, поэтому они легко могут синхронизироваться с кодом и могут обмануть читателя. Их следует использовать только в случае крайней необходимости. Комментирование выполнения жесткого и быстрого правила хуже, чем пустая трата времени.

Товар # 4 довольно хороший. Команды я работал на были больше озабочены вещи, которые идут к качеству реализации (например, хорошей обработки ошибок во всех хранимых процедурах, и хранимые процедуры делают только одну вещь)

+0

Я редко сталкиваюсь с настоящим естественным ключом в 30-летнем опыте работы с базами данных. Суррогаты обычно лучше, чем естественные ключи по соображениям производительности. Если у вас есть настоящий естественный ключ, суррогатным ключом для привязки к дочерним таблицам и уникальным индексом на натуральном ключе, как правило, является наиболее подходящий вариант. – HLGEM

Смежные вопросы