Как сделать так, чтобы каждый элемент данных в моей схеме базы данных имел уникальное имя?

Я читал о принципе, который гласит следующее: "Каждый отдельный элемент данных должен иметь уникальное имя в схеме вашей базы данных". (Http://bytes.com/topic/sql-server/answers/439341-name-keyword) Как вы применяете это?

Обычная техника заключается в размещении трехзначного сокращения перед значимым именем столбца. Таким образом, Employee.Name становится Emp_Name. Все идет нормально. Однако Employer.Name также должно стать Emp_Name. Итак, я должен придумать загадочную аббревиатуру для работодателя, которая имеет мало смысла. Допустим, "Эмль". И по мере того, как Схема становится больше, все больше и больше усилий должно быть направлено на то, чтобы избежать столкновения.

На мой взгляд, хороший компромисс состоит в том, чтобы всегда использовать разумные префиксы. Таким образом, мы избегаем большинства коллизий без использования неинтуитивных сокращений, таких как "Eml" для работодателя.

1 ответ

Требование, чтобы каждый элемент данных имел уникальное имя, не должно интерпретироваться как каждый столбец с уникальным именем.

В частности, внешние ключи должны иметь одинаковые имена в зависимости от таблицы, на которую они ссылаются. Так, CustomerID будет означать одно и то же, где бы это ни происходило. Это будет ссылка на первичный ключ к Customer Таблица. И я бы назвал первичный ключ в таблице CustomerIDхотя иногда я тоже вижу это как ID,

Есть и другие случаи, когда повторяющиеся имена в порядке. У всех таблиц, которые я создаю, есть метаданные в каждой строке, описывающие, когда и кто создал строку. Они называются CreatedAt а также CreatedBy соответственно. Они есть во всех таблицах, но не являются частью логической модели данных.

Другой случай повторяющихся имен, который приходит на ум, - это эффективная дата окончания на медленно меняющихся измерениях. Обычно проще просто назвать эти EffDate а также EndDate (или что угодно), а не пытаться сделать их уникальными.

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

Тем не менее, ответ на ваш вопрос заключается в использовании префиксов, связанных с таблицей. Элементы данных, уникальные для этой таблицы, могут иметь короткий префикс, чтобы мы знали, что это такое. Например, Cust_Name а также Addr_City разумные имена для имени клиента в таблице клиентов и названия города в таблице адресов.

Другие вопросы по тегам