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

Встала задача проектирования базы данных для одного производства. Понял, на сколько сложно придумывать имена, когда нет системного подхода.
Думаю, у каждого опытного комрада свой подход.
Прошу поделиться опытом.
Какую систему(набор правил) для генерации имен используете вы?
Или может вы посоветуете кого почитать.

P.S. Понимаю что есть гугл, но хотелось услышать мнения живых людей.
...
Рейтинг: 0 / 0
О нейминге, или как вы придумываете имена
    #38770217
Триггерман
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PAPA_RimskY,

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

Например,
таблица - T_
вьюха - V_
процедура - P_
функция - F_
первичный ключ - PK_
внешний ключ - FK_
индекс - IX_
...
Рейтинг: 0 / 0
О нейминге, или как вы придумываете имена
    #38770238
WebSharper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я думаю, результат зависит от ограничений конкретных технологий и принятых традиций.
Я бы посмотрел, есть ли готовые соглашения об именовании на предприятии или в технологиях. который вы используете (например если C#, то PascalCase, если где-то где принято подчеркивание для разделения слов то разделять_подчеркиванием).

Я называю таблицы именем сущности в единственном числе используя PascalCase, в имена полей не включаю никаких префиксов (Не ElefantID, а просто ID) а в название полей входящих в FK, если это единственное поле, не включаю названия PK (не MotherID, а просто Mother) .
...
Рейтинг: 0 / 0
О нейминге, или как вы придумываете имена
    #38770250
WebSharper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Триггерман3. Для каждого типа объекта свой префикс и знак "подчёркивания"


Такой подход связывает использующий код с типом объектов. То есть если у вас есть выборка select * from T_employee и вы решили сделать общую таблицу Human, а там завести какое-нибудь поле Type = 'Employee', то вам придется переделывать этот select, а не просто сделать view employee.

А чем он облегчает жизнь?
...
Рейтинг: 0 / 0
О нейминге, или как вы придумываете имена
    #38770268
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PAPA_RimskYПриветствую, господа и дамы.

Встала задача проектирования базы данных для одного производства. Понял, на сколько сложно придумывать имена, когда нет системного подхода.
Думаю, у каждого опытного комрада свой подход.
Прошу поделиться опытом.
Какую систему(набор правил) для генерации имен используете вы?
Или может вы посоветуете кого почитать.

P.S. Понимаю что есть гугл, но хотелось услышать мнения живых людей.Возьмите для начала какое-нибудь средство проектирования, PowerDesigner к примеру.
...
Рейтинг: 0 / 0
О нейминге, или как вы придумываете имена
    #38770270
PAPA_RimskY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WebSharper,

Тут есть проблема:
Отталкиваться от существующей структуры проблематично, т.к. есть еще задача выработки новой системы наименования их сущностей.

К вопросу о соглашениях принятых в используемом языке:
Мне кажется что имена используемые в хранимых процедурах, должны отличаться от имен используемых в базе.
Разве не удобнее когда правила наименования отличаются для них, тогда даже просто читая документацию будет сразу понятно про какую часть идет речь. И не придется лишний раз лезть в справочник.
...
Рейтинг: 0 / 0
О нейминге, или как вы придумываете имена
    #38770273
PAPA_RimskY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA,

Пока что использую MySQL WorkBench, его нейминг мне не понравился.
...
Рейтинг: 0 / 0
О нейминге, или как вы придумываете имена
    #38770289
PAPA_RimskY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Триггерман,

Радует лаконичность правил.
Проблем у вас с ними не возникало?
...
Рейтинг: 0 / 0
О нейминге, или как вы придумываете имена
    #38770459
1001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PAPA_RimskYWebSharper,

Тут есть проблема:
Отталкиваться от существующей структуры проблематично, т.к. есть еще задача выработки новой системы наименования их сущностей.

К вопросу о соглашениях принятых в используемом языке:
Мне кажетсячто имена используемые в хранимых процедурах, должны отличаться от имен используемых в базе.
Разве не удобнее когда правила наименования отличаются для них,
тогда даже просто читая документацию
будет сразу понятно про какую часть идет речь.
И не придется лишний раз лезть в справочник.
*виздецц
...
Рейтинг: 0 / 0
О нейминге, или как вы придумываете имена
    #38770468
WebSharper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PAPA_RimskYК вопросу о соглашениях принятых в используемом языке:
Мне кажется что имена используемые в хранимых процедурах, должны отличаться от имен используемых в базе.
Разве не удобнее когда правила наименования отличаются для них, тогда даже просто читая документацию будет сразу понятно про какую часть идет речь. И не придется лишний раз лезть в справочник.

Я хранимых процедур не пишу, может для них и дико важно знать каждый раз тип сущности. В тех инструментах с которыми я работаю, во-первых, посмотреть тип совершенно не проблема - 1 нажатие клавиши, во-вторых, смысл кода мало зависит от того, тчо за тип (select count(*) from employee подсчитывает количество работников и не важно, как конкретно они реализованы), в-третьих, есть много деталей помимо типа, которые интересно знать (не забивать же все в имя Employee_With_Name_And_Title)
...
Рейтинг: 0 / 0
О нейминге, или как вы придумываете имена
    #38770513
miwaonline
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Триггерман3. Для каждого типа объекта свой префикс и знак "подчёркивания"

Например,
таблица - T_
вьюха - V_
процедура - P_
функция - F_
первичный ключ - PK_
внешний ключ - FK_
индекс - IX_
Лишнее дублирование, имхо. Мне не принципиально - из таблицы я получаю данные, из вьюхи или из процедуры. Поэтому префиксы (у меня) указывают на функциональное значение объекта, а не на его тип в базе данных. Услово - REF_ - справочник, INT_ - внутрений документ, INC_ - входящий документ, OUT_ - исходящий документ, TMP_ - временный объект, RPL_ - объект относится к репликации. И так далее.

А процедуры от тригеров мне среда разработки отделит.
...
Рейтинг: 0 / 0
О нейминге, или как вы придумываете имена
    #38770545
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PAPA_RimskYWebSharper,

Тут есть проблема:
Отталкиваться от существующей структуры проблематично, т.к. есть еще задача выработки новой системы наименования их сущностей.

К вопросу о соглашениях принятых в используемом языке:
Мне кажется что имена используемые в хранимых процедурах, должны отличаться от имен используемых в базе.
Разве не удобнее когда правила наименования отличаются для них, тогда даже просто читая документацию будет сразу понятно про какую часть идет речь. И не придется лишний раз лезть в справочник.Хм...

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
CREATE PROCEDURE dbo.DoAnything
  @p_nAnythingID           INTEGER,
  @p_cAnythingCode         CHAR(3),
  @p_sAnythingName         VARCHAR(200)
AS
BEGIN
  DECLARE @nSomethingID    INTEGER
  DECLARE @cSomethingCode  CHAR(3)
  DECLARE @sSomethingName  VARCHAR(200)
...
Рейтинг: 0 / 0
О нейминге, или как вы придумываете имена
    #38770904
Гхостик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Таблица - имя существительное в ед. числе без префиксов.

Представление - имя существительное в ед. числе с префиксом v_.

Часто не только имя но и дополнения к нему.

Пакет - основной обычно совпадает с именем проекта, с префиксом p. Еще обычно в проекте два дополнительных, в одном код процедур (большей частью сгенерированный) для редактирования справочников в админке (pref, от reference), во втором - курсоры для клиентов - отчеты, выборки для lookup-ов и тд. В пакете редактирования и основном курсоры имеют префикс cr_, в пакете курсоров (pcursor) - без этого префикса.

Процедур. Вне пакетов не держим. Обычно глагол с существительным - что и с чем делает.

Функции - стараюсь не использовать. Если приходится, начинаются с get_.

Поля таблиц.
ПК - практически всегда id, иногда code если справочник маленький и редактировать его пользователь не будет, а будет только разработчик.
Внешние ключи - без префикса или суффикса id, обычно имя совпадает с именем сущности куда ссылается. Но конкретное (предметное) имя, если таковое есть, приоритетнее. Например, boss как начальник отдела лучше чем employee даже если ссылка на employee одна в таблице.

В примечании к ссылке всегда указывается таблица на которую поле ссылается. Например
Код: sql
1.
2.
3.
4.
5.
create table departament (
  id integer not null primary key, -- ПК
  name varchar2(200) not null, -- Название отдела
  boss integer not null references employee(id) -- Начальник отдела, ссылка на employee(id)
)



Параметры процедур - с префиксом i_ (in), o_ (out), io_ (inout).
Локальные переменные процедуры - с префиксом l_.
Глобальные переменные пакетов - с префиксом g_.
Константы - локальный/глобальный префикс + префикс "c". gc_closed_status_code constant varchar2(30) := 'closed';

Использую для oracle и firebird.
...
Рейтинг: 0 / 0
О нейминге, или как вы придумываете имена
    #38770911
Фотография Relic Hunter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PowerDesigner-у, например, не нравится дублирующиеся имена полей сущностей, и он грязно ругается т.к. это доставляет ему геморой при формировании имет констрейнов и индексов. Поэтому у меня имена полей PK всегда содержат имя или часть сущности. Да и с написанием запросов по-легче, можно предположить чей это ID.
...
Рейтинг: 0 / 0
О нейминге, или как вы придумываете имена
    #38771045
Фотография Станислав Клевцов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Триггерман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_ - процедура
...
Рейтинг: 0 / 0
О нейминге, или как вы придумываете имена
    #38771137
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PAPA_RimskYПриветствую, господа и дамы.

Встала задача проектирования базы данных для одного производства. Понял, на сколько сложно придумывать имена, когда нет системного подхода.
Думаю, у каждого опытного комрада свой подход.
Прошу поделиться опытом.
Какую систему(набор правил) для генерации имен используете вы?
Или может вы посоветуете кого почитать.

P.S. Понимаю что есть гугл, но хотелось услышать мнения живых людей.

Все украдено до нас Венгерская нотация

<:o)
...
Рейтинг: 0 / 0
О нейминге, или как вы придумываете имена
    #38771146
Фотография Станислав Клевцов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgulPAPA_RimskYПриветствую, господа и дамы.

Встала задача проектирования базы данных для одного производства. Понял, на сколько сложно придумывать имена, когда нет системного подхода.
Думаю, у каждого опытного комрада свой подход.
Прошу поделиться опытом.
Какую систему(набор правил) для генерации имен используете вы?
Или может вы посоветуете кого почитать.

P.S. Понимаю что есть гугл, но хотелось услышать мнения живых людей.

Все украдено до нас Венгерская нотация

<:o)

в этом что-то есть )))
...
Рейтинг: 0 / 0
О нейминге, или как вы придумываете имена
    #38771167
dvim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Триггерман,
Поддерживаю. При этом при смене команды/платформы клиента (давно, еще до меня) сменили префиксы.

Единственное - на английском называются те понятия, которые более менее известны на английском.
Неоднозначные понятия - транслит.
...
Рейтинг: 0 / 0
О нейминге, или как вы придумываете имена
    #38772956
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Триггерман1. Все названия объектов только буквами английского алфавита.
2. Все названия объектов на английском языке.
О, Господи! В тайне лелется мысль, что эта автоматизация ларька будет востребована еще где-то, кроме как в трех палатка на центральном рынке Воронежа!
...
Рейтинг: 0 / 0
О нейминге, или как вы придумываете имена
    #38773557
PAPA_RimskY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. Как именуете таблицы связи many-to-many?
2. Таблицы справочников? Префиксы или что-то в духе EntityList?
...
Рейтинг: 0 / 0
О нейминге, или как вы придумываете имена
    #38773612
SERG1257
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>1. Как именуете таблицы связи many-to-many?
Entity1_Entity2_xref
>Таблицы справочников
что-то в духе EntityList?
...
Рейтинг: 0 / 0
О нейминге, или как вы придумываете имена
    #38774003
Dmitry V. Liseev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cat2Триггерман1. Все названия объектов только буквами английского алфавита.
2. Все названия объектов на английском языке.
О, Господи! В тайне лелется мысль, что эта автоматизация ларька будет востребована еще где-то, кроме как в трех палатка на центральном рынке Воронежа!Стив Джобс начинал в гараже.
...
Рейтинг: 0 / 0
О нейминге, или как вы придумываете имена
    #38774037
WebSharper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PAPA_RimskY1. Как именуете таблицы связи many-to-many?

DepartmentPosition

2. Таблицы справочников? Префиксы или что-то в духе EntityList?

Customer, Employee, Position
...
Рейтинг: 0 / 0
О нейминге, или как вы придумываете имена
    #38774269
Бредятина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сколько проблем у программистов из-за того, что они так любят программировать)) С утра до вечера.. Одно и то же. Надо же, проблема, как именовать ИДЕНТИФИКАТОРЫ (!!!) объектов))
...
Рейтинг: 0 / 0
О нейминге, или как вы придумываете имена
    #38774305
Фотография Станислав Клевцов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
...
Рейтинг: 0 / 0
25 сообщений из 37, страница 1 из 2
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / О нейминге, или как вы придумываете имена
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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