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

       

Структурирует некую фундаментальную природу вещей.


Структурирует некую фундаментальную природу вещей. Например, перечисляет типы улиц - "улица", "переулок", "проезд", "тупик", "овраг". Через пару лет построят в деревне первый проспект - добавим "проспект".

Можно ввести дополнительные соглашения, приятные для программистов. Например, что записи из таблиц типа 'C' не удаляются, а только иногда добавляются. Что в интерфейсе для работы с таким списком  будет достаточно унифицированной формы с полным просмотром содержимого и простейшим поиском-фильтром, а для выбора значения - выпадающего списка (ComboBox).

  • S - Справочник. Относительно большая таблица, выходящая за пределы простого каталога. Могут требовать инкрементального поиска, времязависимости, древовидных показов и чего угодно.

  • R - Реестр. Таблица объектов, для поголовного учета которых собственно предназначена система, например Абонентов, Приборов. Объекты интенсивно добавляются, редактируются, удаляются (или иным образом помечаются как выведенные из учета). Таблицы, как правило, времязависимы. Объем таблиц может быть велик. Просмотр всей таблицы обычно не имеет смысла, из-за чего применяются специальный поиск и фильтрация, зависящие от прикладной специфики. Обычно такие таблицы слегка растут со временем, скажем, на несколько процентов в месяц.

  • J - Журнал. Таблица фиксирования событий, например журнал бухгалтерских операций, журнал регистрации пользователей в системе. Растет линейно со временем жизни системы (поэтому при больших объемах может понадобиться сбрасывание части информации в архив). Как правило, просмотр всей таблицы не имеет смысла, а нужен только в контексте какого-либо объекта в связи один-ко-многим, например - операции начисления данного абонента, отчет о вчерашних похождениях конкретного пользователя. Также используются для расчетов, отчетов.

  • Разумеется, можно придумать и другие префиксы.


  • Чем еще привлекает прибавление префиксов к единственному числу по сравнению с множественным числом - своей однозначностью.Ведь нередко в английском языке образование множественного числа не сводится к простому прибавлению 's' (как в последнем примере с city - cities). А если вы захотите поиском найти по всем файлам проекта фрагменты, где завязаны города, придется вспоминать этот нюанс.

    Не будем также забывать, что в качестве имен сущностей мы разрешили себе использовать сокращения и аббревиатуры. А в этом случае добавление "s" или "es" вряд ли добавит ясности и читабельности.

    Будем считать, что с правилом именования таблиц мы определились. Разумеется, из любого правила есть исключения. Скажем, как именовать таблицы, отражающие связи "много-ко-многим"?, например вхождение пользователей (сущность user) в группы (сущность ugroup)? 

    Предлагаю использовать специальный префикс "nn_", и получится nn_user_ugroup. Возможны и другие исключения.


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