Я нашел Naming Guidelines от MSDN, но есть ли какие-либо рекомендации для базы данных MSSQL от Microsoft?Соглашения об именах баз данных от Microsoft?
ответ
Соглашения об именах, используемые в базе данных SQL Server AdventureWorks, демонстрируют множество лучших практик с точки зрения стиля.
Резюмируя:
- Имена объектов легко понять
- Имена таблиц не множественном (таблица «Пользователь» не «Пользователи»)
- Сокращения мало, но разрешено (то есть Кол-во , Amt и т. Д.)
- PascalCase, используемый исключительно с исключение определенных имен столбцов (то есть ряд строк)
- Подчеркивания
- Некоторые ключевые слова разрешены (т. Имя)
- Хранимые процедуры предваряется "УСП"
- Функции предваряются "UFN"
Вы можете найти более подробную информацию здесь:
Одно предостережение: соглашения об именах в базе данных могут быть весьма противоречивыми, и большинство разработчиков баз данных, с которыми я встречался, имеют личную заинтересованность в их стиле. Я слышал горячие споры о том, следует ли называть таблицу «OrderHeader» или «OrderHeaders».
Мне нравится, что вы ссылаетесь на оригинальную статью, и я ДЕЙСТВИТЕЛЬНО люблю, что вы потрудились обобщить для всех. Жаль, что я не смог бы удвоить. –
@ 8kb о названиях баз данных? Множественном? –
Шесть лет спустя и все еще получаю +1 за хорошо выложенный ответ со ссылками и хорошим резюме. – AgapwIesu
Нет, нет никаких практик в приведенной ссылке, хорошо иметь в виду.
Что касается именования хранимых процедур - сделать не префикс их «sp_» Вы можете read more about why in this link:
«Не префикс хранимых процедур с sp_, так как этот префикс зарезервирован для идентифицирующие системные процедуры ».
Я добавил соответствующую цитату из статьи, потому что она короткая, и мы не можем ожидать, что ссылка на 5-летнюю почту будет длиться вечно. – Gabe
sp_ не зарезервирован, он просто заставляет SQL Server искать системные процедуры перед поиском пользовательских процедур. – 2013-11-13 21:11:10
Я не знаю, что означает «лучшие практики в терминах стиля» в ответе @ 8kb (на момент написания). Конечно, некоторые из перечисленных элементов («Названия таблиц не являются плюрализованными», «Нет подчеркиваний» и т. Д.) - это просто выбор стиля, который явно субъективен. Я бы подумал, что личными предпочтениями руководства по документации будет самый главный фактор здесь.
Что касается эвристики в SQL вообще (в отличие от проприетарного SQL, такого как T-SQL), есть только одна книга по теме: Joe Celko's SQL programming style. Многие из вариантов конфликта базы данных AdventureWorks от SQL Server противоречат рекомендациям Celko.
Соглашение об именовании Celko основано на международном стандарте ISO 11179, например. указывает, что для разделения элементов в имени следует использовать разделительный символ (например, подчеркивание). Другие варианты стиля аналогичным образом подкрепляются исследованиями, например. используя исключительно строчные буквы для имен столбцов, что помогает сканировать человеческим глазом. Несомненно, есть и субъективные личные предпочтения, но они основаны на многолетнем опыте в этой области.
С другой стороны, в документах SQL Server улучшилось положение в последние годы, например. Ключевые слова SQL заглавные, полуколоны для разделения заявлений и т. Д. Приключенческие работы - это значительное улучшение в отношении Northwind и пабов. Теперь почему не может функция скриптинга в Management Studio выплюнуть код, который немного проще на глазу ?!
- 1. Соглашения об именах
- 2. Несколько баз данных или соглашения об именах таблиц?
- 3. Соглашения об именах баз данных, таблиц и столбцов снова
- 4. Как изменились соглашения об именах баз данных для многозадачных приложений?
- 5. Соглашения об именах файлов
- 6. Соглашения об именах AJAX
- 7. Соглашения об именах объектов
- 8. Соглашения об именах Ruby?
- 9. SQL соглашения об именах
- 10. Соглашения об именах Bem
- 11. Соглашения об именах PHPUnit
- 12. Соглашения об именах .NET
- 13. Соглашения об именах PostgreSQL
- 14. Соглашения об именах Java
- 15. Соглашения об именах Python
- 16. Соглашения об именах javascript mock
- 17. Соглашения об именах Objective C
- 18. Соглашения об именах функциональных серверов
- 19. Соглашения об именах маршрутизаторов Ember
- 20. Какова цель tbl_Product, соглашения об именах tbl_Order?
- 21. Принудительные соглашения об именах функций
- 22. Mule flow - Соглашения об именах
- 23. Соглашения об именах базовых файлов
- 24. zf2 Соглашения об именах классов
- 25. IIFE и соглашения об именах
- 26. Проект MVC5 - Соглашения об именах
- 27. Соглашения об именах в MVC5
- 28. Соглашения об именах JavaFX: MVC
- 29. Соглашения об именах для MVVM?
- 30. iOS Соглашения об именах изображений
Ниже приведены отличные ответы, но я бы добавил следующее: Согласование и соблюдение конвенции в вашей организации для организации вашей БД (включая именование) не менее важно. Например, мы сначала пытаемся сохранить столбцы первичного ключа, за которыми следуют все столбцы внешнего ключа, чтобы вы могли найти отношения с первого взгляда, а затем все дополнительные столбцы в алфавитном порядке, чтобы вы могли найти тот, который вам нужен, когда таблица имеет тонны столбцов , Мудрость наших конкретных конвенций спорна, но ценность того, что разговор в вашей команде, вероятно, не таков. –