|
|
|
О нейминге, или как вы придумываете имена
|
|||
|---|---|---|---|
|
#18+
Приветствую, господа и дамы. Встала задача проектирования базы данных для одного производства. Понял, на сколько сложно придумывать имена, когда нет системного подхода. Думаю, у каждого опытного комрада свой подход. Прошу поделиться опытом. Какую систему(набор правил) для генерации имен используете вы? Или может вы посоветуете кого почитать. P.S. Понимаю что есть гугл, но хотелось услышать мнения живых людей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2014, 12:00 |
|
||
|
О нейминге, или как вы придумываете имена
|
|||
|---|---|---|---|
|
#18+
PAPA_RimskY, 1. Все названия объектов только буквами английского алфавита. 2. Все названия объектов на английском языке. 3. Для каждого типа объекта свой префикс и знак "подчёркивания" Например, таблица - T_ вьюха - V_ процедура - P_ функция - F_ первичный ключ - PK_ внешний ключ - FK_ индекс - IX_ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2014, 12:27 |
|
||
|
О нейминге, или как вы придумываете имена
|
|||
|---|---|---|---|
|
#18+
Я думаю, результат зависит от ограничений конкретных технологий и принятых традиций. Я бы посмотрел, есть ли готовые соглашения об именовании на предприятии или в технологиях. который вы используете (например если C#, то PascalCase, если где-то где принято подчеркивание для разделения слов то разделять_подчеркиванием). Я называю таблицы именем сущности в единственном числе используя PascalCase, в имена полей не включаю никаких префиксов (Не ElefantID, а просто ID) а в название полей входящих в FK, если это единственное поле, не включаю названия PK (не MotherID, а просто Mother) . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2014, 12:33 |
|
||
|
О нейминге, или как вы придумываете имена
|
|||
|---|---|---|---|
|
#18+
Триггерман3. Для каждого типа объекта свой префикс и знак "подчёркивания" Такой подход связывает использующий код с типом объектов. То есть если у вас есть выборка select * from T_employee и вы решили сделать общую таблицу Human, а там завести какое-нибудь поле Type = 'Employee', то вам придется переделывать этот select, а не просто сделать view employee. А чем он облегчает жизнь? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2014, 12:37 |
|
||
|
О нейминге, или как вы придумываете имена
|
|||
|---|---|---|---|
|
#18+
PAPA_RimskYПриветствую, господа и дамы. Встала задача проектирования базы данных для одного производства. Понял, на сколько сложно придумывать имена, когда нет системного подхода. Думаю, у каждого опытного комрада свой подход. Прошу поделиться опытом. Какую систему(набор правил) для генерации имен используете вы? Или может вы посоветуете кого почитать. P.S. Понимаю что есть гугл, но хотелось услышать мнения живых людей.Возьмите для начала какое-нибудь средство проектирования, PowerDesigner к примеру. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2014, 12:43 |
|
||
|
О нейминге, или как вы придумываете имена
|
|||
|---|---|---|---|
|
#18+
WebSharper, Тут есть проблема: Отталкиваться от существующей структуры проблематично, т.к. есть еще задача выработки новой системы наименования их сущностей. К вопросу о соглашениях принятых в используемом языке: Мне кажется что имена используемые в хранимых процедурах, должны отличаться от имен используемых в базе. Разве не удобнее когда правила наименования отличаются для них, тогда даже просто читая документацию будет сразу понятно про какую часть идет речь. И не придется лишний раз лезть в справочник. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2014, 12:44 |
|
||
|
О нейминге, или как вы придумываете имена
|
|||
|---|---|---|---|
|
#18+
skyANA, Пока что использую MySQL WorkBench, его нейминг мне не понравился. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2014, 12:45 |
|
||
|
О нейминге, или как вы придумываете имена
|
|||
|---|---|---|---|
|
#18+
Триггерман, Радует лаконичность правил. Проблем у вас с ними не возникало? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2014, 12:49 |
|
||
|
О нейминге, или как вы придумываете имена
|
|||
|---|---|---|---|
|
#18+
PAPA_RimskYWebSharper, Тут есть проблема: Отталкиваться от существующей структуры проблематично, т.к. есть еще задача выработки новой системы наименования их сущностей. К вопросу о соглашениях принятых в используемом языке: Мне кажетсячто имена используемые в хранимых процедурах, должны отличаться от имен используемых в базе. Разве не удобнее когда правила наименования отличаются для них, тогда даже просто читая документацию будет сразу понятно про какую часть идет речь. И не придется лишний раз лезть в справочник. *виздецц ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2014, 14:30 |
|
||
|
О нейминге, или как вы придумываете имена
|
|||
|---|---|---|---|
|
#18+
PAPA_RimskYК вопросу о соглашениях принятых в используемом языке: Мне кажется что имена используемые в хранимых процедурах, должны отличаться от имен используемых в базе. Разве не удобнее когда правила наименования отличаются для них, тогда даже просто читая документацию будет сразу понятно про какую часть идет речь. И не придется лишний раз лезть в справочник. Я хранимых процедур не пишу, может для них и дико важно знать каждый раз тип сущности. В тех инструментах с которыми я работаю, во-первых, посмотреть тип совершенно не проблема - 1 нажатие клавиши, во-вторых, смысл кода мало зависит от того, тчо за тип (select count(*) from employee подсчитывает количество работников и не важно, как конкретно они реализованы), в-третьих, есть много деталей помимо типа, которые интересно знать (не забивать же все в имя Employee_With_Name_And_Title) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2014, 14:37 |
|
||
|
О нейминге, или как вы придумываете имена
|
|||
|---|---|---|---|
|
#18+
Триггерман3. Для каждого типа объекта свой префикс и знак "подчёркивания" Например, таблица - T_ вьюха - V_ процедура - P_ функция - F_ первичный ключ - PK_ внешний ключ - FK_ индекс - IX_ Лишнее дублирование, имхо. Мне не принципиально - из таблицы я получаю данные, из вьюхи или из процедуры. Поэтому префиксы (у меня) указывают на функциональное значение объекта, а не на его тип в базе данных. Услово - REF_ - справочник, INT_ - внутрений документ, INC_ - входящий документ, OUT_ - исходящий документ, TMP_ - временный объект, RPL_ - объект относится к репликации. И так далее. А процедуры от тригеров мне среда разработки отделит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2014, 15:09 |
|
||
|
О нейминге, или как вы придумываете имена
|
|||
|---|---|---|---|
|
#18+
PAPA_RimskYWebSharper, Тут есть проблема: Отталкиваться от существующей структуры проблематично, т.к. есть еще задача выработки новой системы наименования их сущностей. К вопросу о соглашениях принятых в используемом языке: Мне кажется что имена используемые в хранимых процедурах, должны отличаться от имен используемых в базе. Разве не удобнее когда правила наименования отличаются для них, тогда даже просто читая документацию будет сразу понятно про какую часть идет речь. И не придется лишний раз лезть в справочник.Хм... Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2014, 15:22 |
|
||
|
О нейминге, или как вы придумываете имена
|
|||
|---|---|---|---|
|
#18+
Таблица - имя существительное в ед. числе без префиксов. Представление - имя существительное в ед. числе с префиксом v_. Часто не только имя но и дополнения к нему. Пакет - основной обычно совпадает с именем проекта, с префиксом p. Еще обычно в проекте два дополнительных, в одном код процедур (большей частью сгенерированный) для редактирования справочников в админке (pref, от reference), во втором - курсоры для клиентов - отчеты, выборки для lookup-ов и тд. В пакете редактирования и основном курсоры имеют префикс cr_, в пакете курсоров (pcursor) - без этого префикса. Процедур. Вне пакетов не держим. Обычно глагол с существительным - что и с чем делает. Функции - стараюсь не использовать. Если приходится, начинаются с get_. Поля таблиц. ПК - практически всегда id, иногда code если справочник маленький и редактировать его пользователь не будет, а будет только разработчик. Внешние ключи - без префикса или суффикса id, обычно имя совпадает с именем сущности куда ссылается. Но конкретное (предметное) имя, если таковое есть, приоритетнее. Например, boss как начальник отдела лучше чем employee даже если ссылка на employee одна в таблице. В примечании к ссылке всегда указывается таблица на которую поле ссылается. Например Код: sql 1. 2. 3. 4. 5. Параметры процедур - с префиксом i_ (in), o_ (out), io_ (inout). Локальные переменные процедуры - с префиксом l_. Глобальные переменные пакетов - с префиксом g_. Константы - локальный/глобальный префикс + префикс "c". gc_closed_status_code constant varchar2(30) := 'closed'; Использую для oracle и firebird. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2014, 20:41 |
|
||
|
О нейминге, или как вы придумываете имена
|
|||
|---|---|---|---|
|
#18+
PowerDesigner-у, например, не нравится дублирующиеся имена полей сущностей, и он грязно ругается т.к. это доставляет ему геморой при формировании имет констрейнов и индексов. Поэтому у меня имена полей PK всегда содержат имя или часть сущности. Да и с написанием запросов по-легче, можно предположить чей это ID. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2014, 20:51 |
|
||
|
О нейминге, или как вы придумываете имена
|
|||
|---|---|---|---|
|
#18+
ТриггерманPAPA_RimskY, 1. Все названия объектов только буквами английского алфавита. 2. Все названия объектов на английском языке. 3. Для каждого типа объекта свой префикс и знак "подчёркивания" Например, таблица - T_ вьюха - V_ процедура - P_ функция - F_ первичный ключ - PK_ внешний ключ - FK_ индекс - IX_ Добавлю еще немного .... Схема *_STG. (сырые данные) S_ - таблица V_ - витрина prc_ - процедура M_ - промежуточная таблица $H_ - история загрузки Схема *_DV (data vault) Префиксы: V_ - витрина T_ - таблица prc_ - процедура Постфиксы: _H - хаб _HS -хаб-сателлит _L - линк _LS - линк-сателлит Схема *_DV (non data vault) Префиксы Т_ - таблица V_ - Витрина prc_ - процедура Постфиксы: _AGG_01 - ежедневный агрегат _AGG_02 - ежемесячный агрегат _AGG_03 - еженедельный агрегат _LNK - линк (связь) Схема *_DM Префиксы: D_ - таблица V_ - витрина prc_ - процедура ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2014, 00:30 |
|
||
|
О нейминге, или как вы придумываете имена
|
|||
|---|---|---|---|
|
#18+
PAPA_RimskYПриветствую, господа и дамы. Встала задача проектирования базы данных для одного производства. Понял, на сколько сложно придумывать имена, когда нет системного подхода. Думаю, у каждого опытного комрада свой подход. Прошу поделиться опытом. Какую систему(набор правил) для генерации имен используете вы? Или может вы посоветуете кого почитать. P.S. Понимаю что есть гугл, но хотелось услышать мнения живых людей. Все украдено до нас Венгерская нотация <:o) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2014, 08:08 |
|
||
|
О нейминге, или как вы придумываете имена
|
|||
|---|---|---|---|
|
#18+
mad_nazgulPAPA_RimskYПриветствую, господа и дамы. Встала задача проектирования базы данных для одного производства. Понял, на сколько сложно придумывать имена, когда нет системного подхода. Думаю, у каждого опытного комрада свой подход. Прошу поделиться опытом. Какую систему(набор правил) для генерации имен используете вы? Или может вы посоветуете кого почитать. P.S. Понимаю что есть гугл, но хотелось услышать мнения живых людей. Все украдено до нас Венгерская нотация <:o) в этом что-то есть ))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2014, 08:30 |
|
||
|
О нейминге, или как вы придумываете имена
|
|||
|---|---|---|---|
|
#18+
Триггерман, Поддерживаю. При этом при смене команды/платформы клиента (давно, еще до меня) сменили префиксы. Единственное - на английском называются те понятия, которые более менее известны на английском. Неоднозначные понятия - транслит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2014, 09:01 |
|
||
|
О нейминге, или как вы придумываете имена
|
|||
|---|---|---|---|
|
#18+
Триггерман1. Все названия объектов только буквами английского алфавита. 2. Все названия объектов на английском языке. О, Господи! В тайне лелется мысль, что эта автоматизация ларька будет востребована еще где-то, кроме как в трех палатка на центральном рынке Воронежа! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2014, 12:09 |
|
||
|
О нейминге, или как вы придумываете имена
|
|||
|---|---|---|---|
|
#18+
1. Как именуете таблицы связи many-to-many? 2. Таблицы справочников? Префиксы или что-то в духе EntityList? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2014, 17:07 |
|
||
|
О нейминге, или как вы придумываете имена
|
|||
|---|---|---|---|
|
#18+
>1. Как именуете таблицы связи many-to-many? Entity1_Entity2_xref >Таблицы справочников что-то в духе EntityList? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2014, 17:43 |
|
||
|
О нейминге, или как вы придумываете имена
|
|||
|---|---|---|---|
|
#18+
Cat2Триггерман1. Все названия объектов только буквами английского алфавита. 2. Все названия объектов на английском языке. О, Господи! В тайне лелется мысль, что эта автоматизация ларька будет востребована еще где-то, кроме как в трех палатка на центральном рынке Воронежа!Стив Джобс начинал в гараже. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.10.2014, 14:43 |
|
||
|
О нейминге, или как вы придумываете имена
|
|||
|---|---|---|---|
|
#18+
PAPA_RimskY1. Как именуете таблицы связи many-to-many? DepartmentPosition 2. Таблицы справочников? Префиксы или что-то в духе EntityList? Customer, Employee, Position ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.10.2014, 16:58 |
|
||
|
О нейминге, или как вы придумываете имена
|
|||
|---|---|---|---|
|
#18+
Сколько проблем у программистов из-за того, что они так любят программировать)) С утра до вечера.. Одно и то же. Надо же, проблема, как именовать ИДЕНТИФИКАТОРЫ (!!!) объектов)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2014, 12:00 |
|
||
|
О нейминге, или как вы придумываете имена
|
|||
|---|---|---|---|
|
#18+
WebSharperPAPA_RimskY1. Как именуете таблицы связи many-to-many? DepartmentPosition 2. Таблицы справочников? Префиксы или что-то в духе EntityList? Customer, Employee, Position T_DEPARTMENT_POSITION_LNK или можно использовать сокращения T_DEP_POSITION_LNK T_CUSTOMER,T_EMPLOYEE, T_POSITION или можно использовать сокращения T_CUSTOMER, T_EMPL, T_POSITION ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2014, 14:11 |
|
||
|
|

start [/forum/topic.php?fid=32&fpage=26&tid=1540763]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
58ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
85ms |
get tp. blocked users: |
2ms |
| others: | 12ms |
| total: | 206ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...