Классика баз данных - статьи

       

Выбор имени сущности


Обычно в результате нормализации каждая таблица ассоциируется с неким объектом или событием реального мира - человеком, документом, посещением и т.д., то есть "сущностью". Основой для дальнейших рассуждений будет "имя сущности" - идентификатор из латинских букв и цифр, например 'man', 'doc', 'visit'. При выборе имени сущности разумно придерживаться таких правил:

  • Имя должно быть существительным (полным, сокращенным либо аббревиатурой) в единственном числе.
  • Имя должно быть как можно короче. Оптимально - 2-4 буквы, максимум до 10.

  • Имя должно быть уникальным в пределах базы данных.
  • Имя должно быть мнемонически понятным проектантам без заглядывания в словарь (но словарь такой хорошо бы составить).

  • Желательно, чтобы имена не начинались и не заканчивались на другие имена сущностей.

    Обсудим это.

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

    Итак, почему как можно короче? Потому что на основании имени сущности мы будем "лепить" другие идентификаторы. Они будут встречаться целыми списками в секциях FROM, WHERE. И если названия таблицы и пяти соединенных справочников будут несокращенными словами в 16-20 символов, то это порадует лишь поклонников языка Шекспира, но успешно затуманит смысл простейших SQL-запросов.

    Требование уникальности понятно само собой. Стоит лишь заметить, что здесь нужно максимально учесть перспективы роста БД. Возможно, стоит набросать список сущностей, которые могут войти в БД в следующих версиях системы, даже если эта работа отдаленного будущего.

    Чтобы сделать имена понятными, нужно определиться - "salary" или "zarplata" ? То есть в качестве имен сущностей можно использовать английские слова и сокращения, либо русские (кстати, почему бы и не на других языках? Лишь бы... см. Правило 4 ;-) Кстати, неплохо использовать комбинации из двух понятий. Например "группа пользователей" - "ugroup", "группа домов" - "hgroup".

    Последнее, пятое правило говорит, что если у вас уже есть таблица 'документ' (doc), то для 'докторов' и 'доктрин' нужно выбрать что-то другое, а не 'doctor' и 'doctrine'. Океан тоже нехорошо называть 'oc' (иначе документ будет интуитивно восприниматься как нечто связанное с океаном - doc). Для решения такой проблемы можно изменить либо удлинить проблемный идентификатор, например 'dcm', 'docum',



    Содержание  Назад  Вперед