powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / О нейминге, или как вы придумываете имена
12 сообщений из 37, страница 2 из 2
О нейминге, или как вы придумываете имена
    #38774313
Фотография vadiminfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ТриггерманPAPA_RimskY,

1. Все названия объектов только буквами английского алфавита.
2. Все названия объектов на английском языке.
3. Для каждого типа объекта свой префикс и знак "подчёркивания"

Например,
таблица - T_
вьюха - V_
процедура - P_
функция - F_
первичный ключ - PK_
внешний ключ - FK_
индекс - IX_
Возможно, таблицам префиксы, о том что это таблица не нужны в РМД. Так как таблицы это собственно основное в БД - средство структурирования данных (БД - это прежде всего информация). И их имена могли бы иметь только намек на содержание данных таблицы. А для подчеркивания роли "справочника", возможно, в имя добавлять подслово TYPE. Т.е. нацелить именование именно на упрощение содержательно понимания схемы БД.
...
Рейтинг: 0 / 0
О нейминге, или как вы придумываете имена
    #38774398
Гхостик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
>1. Как именуете таблицы связи many-to-many?

В приоритете - по смыслу. Лучше указать смысл связи в имени (часто такая таблица - полноценная сущность), это важнее того, какие именно сущности связываются.
...
Рейтинг: 0 / 0
О нейминге, или как вы придумываете имена
    #38774407
Фотография vadiminfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гхостик>1. Как именуете таблицы связи many-to-many?

В приоритете - по смыслу. Лучше указать смысл связи в имени (часто такая таблица - полноценная сущность), это важнее того, какие именно сущности связываются.
Такая таблица вполне может может быть "полноценной" связью (в ней собсно присутствуют атрибуты по которым связь). Потому чтобы это сразу бросалось в глаза, можно как-то указать это в имени. Например, по три буквы от каждой таблы (или идентификаторов по котором идет связь), а межу подчеркивание. Глядя на схему это сразу подскажет что речь идет о связи многие ко многим. Но так или иначе выделить.

Там где работаю принято: у каждого атрибута всегда суффикс из трех букв таблы. Это тоже как-то упрощает: сразу видна разница между родными и мигрированными атрибутами.
...
Рейтинг: 0 / 0
О нейминге, или как вы придумываете имена
    #38775003
Фотография Владимир П.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WebSharperв имена полей не включаю никаких префиксов (Не ElefantID, а просто ID) а в название полей входящих в FK, если это единственное поле, не включаю названия PK (не MotherID, а просто Mother) .
Я выработал противоположную практику. Все поля снабжаю префиксом -- 2--4 буквенным сокращением имени таблицы. Поле, входящее в FK, называю префиксом от таблицы-источника. Так, если таблица Elefant ссылается на таблицу Mother, то: id в таблице Mother получит название MOTH_ID, и в таблице Elefant поле - ссылка на Mother получит то же имя MOTH_ID.

Чем удобно -- конструируя SQL-запросы с джойнами можно будет обойтись краткой записью «from T1 natural join T2» вместо «T1 join T2 on (длинная формулировка условия)».
...
Рейтинг: 0 / 0
О нейминге, или как вы придумываете имена
    #38775023
Гхостик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Владимир П.Все поля снабжаю префиксом -- 2--4 буквенным сокращением имени таблицы. Поле, входящее в FK, называю префиксом от таблицы-источника. Так, если таблица Elefant ссылается на таблицу Mother, то: id в таблице Mother получит название MOTH_ID, и в таблице Elefant поле - ссылка на Mother получит то же имя MOTH_ID.

Чем удобно -- конструируя SQL-запросы с джойнами можно будет обойтись краткой записью «from T1 natural join T2» вместо «T1 join T2 on (длинная формулировка условия)».
А давайте слон будет ссылаться на папу и маму - тоже слонов, как напишете запрос для показа имен слона, его мамы и папы? Мой вариант:

Код: sql
1.
2.
3.
4.
select e.id, e.name, m.name mother_name, f.name father_name
from elephant e
join elephant m on m.id = e.mother
join elephant f on f.id = e.father
...
Рейтинг: 0 / 0
О нейминге, или как вы придумываете имена
    #38775038
Фотография Владимир П.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ГхостикА давайте слон будет ссылаться на папу и маму
Т.е. таблица ссылается сама на себя, формируя иерархическую связь? В подлобных случаях, конечно, трюк с natural join не выйдет, и мой запрос будет такой же по сути, как ваш.

С учетом принятых правил именования:

Код: sql
1.
2.
3.
4.
select e.ele_id, e.ele_name, m.ele_name mother_name, f.ele_name father_name
from elephants e
join elephants m on m.ele_id = e.ele_mother_id
join elephants f on f.ele_id = e.ele_father_id
...
Рейтинг: 0 / 0
О нейминге, или как вы придумываете имена
    #38778167
stanilar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У Селко неплохо написано про принципы наименования. У него есть даже очень интересная мысль - заменить прификсы окончаниями. Этот прием очень неплохо себя показал в нормальных языках программирования, потому что сразу видно когда работают связанные по смыслу команды, а когда - нет. А информация о типе хоть и важна, но вторична по отношению к смысловой нагрузке.

Вообще префикс - это наследие тех времен, когда программы придумывались долго, а набирали, например на перфокарту, быстро, да еще и компы могли быть разной архитектуры. Соответственно больше ошибок было при наборе.

Сейчас другие реалии, быстро придумывают и долго набирают. Так долго, что даже begin и end некоторых отягощает просто непосильно. :-)
...
Рейтинг: 0 / 0
О нейминге, или как вы придумываете имена
    #38778190
scf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Могу про нашу базу рассказать, она весьма большая и весьма старая.

Таблицы называются в единственном числе, без префиксов и суффиксов
Поля - аналогично
PK может называться как угодно, но все FK обязаны называться так же, как и PK
Названия индексов начинаются с IX_
Название вьюх начинается с префикса, подчеркивающего их *назначение*.
У нас оракл, так что соглашений для хранимок нет, а пакеты начинаются с префикса PKG_
...
Рейтинг: 0 / 0
О нейминге, или как вы придумываете имена
    #38783331
Фотография Евгений Фадеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
scfPK может называться как угодно, но все FK обязаны называться так же, как и PK

Это хорошее правило. Но оно не может быть столь категоричным. Просто потому что следовать ему не всегда возможно.
...
Рейтинг: 0 / 0
О нейминге, или как вы придумываете имена
    #38783675
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
scfPK может называться как угодно, но все FK обязаны называться так же, как и PK
Названия индексов начинаются с IX_Как это, у нескольких констрейнов одинаковое имя???

Мы называем так:
PK_ИмяТаблицы
FK_ИмяТаблицы_ИмяТаблицы
IX_ИмяТаблицы_ИенаПолей
...
Рейтинг: 0 / 0
О нейминге, или как вы придумываете имена
    #38783728
WebSharper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир П.Mother получит название MOTH_ID

Люблю смотреть всякие сокращения и описки в словарях. Moth - это моль :)
...
Рейтинг: 0 / 0
О нейминге, или как вы придумываете имена
    #38783909
Фотография Ennor Tiegael
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таблицы - существительные без разделителей, CamelCase. Поля - Id, ParentEntityId.
Вьюхи - зависит от случая: если просто прокси для таблицы с разыменованием справочников, то ViewTableName; если группирует неск. таблиц в отдельную сущность, то ViewThisEntityName. Вообще, не люблю подчеркивания.

Процедуры - примерно как если бы это были методы объектов (коими их, при должном уровне абстракции, вполне можно считать). Сначала логическая подсистема, потом (опционально) уточнение, потом - название метода. Например: documents_create, security_user_update, workflow_document_changeowner. В сложносоставных частях делаю Camel, но чаще все имя в нижнем регистре.

PK и FK - написал специальные скрипты для PowerDesigner, которые массово переименовывают соотв. объекты к видам PK_TableName и FK_ChildTable_ParentTable_ChildColumnList, соответственно. До этого был аналогичный скрипт на SQL, но лучше в консерватории править, как известно. Но иногда и в БД приходится переименовывать, если схема чужая и все вразнобой.
Индексы - IX_TableName_ColumnList, но иногда бывает и короче. Если есть натуральный ключ, то UQ_TableName_NK. Иногда, если очень большой список столбцов, то приходится обрезать до 128 знаков (FK тоже касается).

Т.е. правила есть, но без фанатизма (исключение - все на английском, в моем случае это обязательно).
...
Рейтинг: 0 / 0
12 сообщений из 37, страница 2 из 2
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / О нейминге, или как вы придумываете имена
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]