Базы данных - стандарты именования обьектов

User avatar
katit
Уже с Приветом
Posts: 23804
Joined: 05 Jul 2003 22:34
Location: Брест -> St. Louis, MO

Базы данных - стандарты именования обьектов

Post by katit »

Вот собственно subj
Может накидайте линков какие в индустрии есть стандарты...

Я работаю с ERP пакетом. Там такие дела:

Таблицы:
tmmName[Wrk]

где t - таблица, mm - модуль(AR, AP, SO, IM...)
Wrk - ставится если таблица не содержит данных а только макет

Views:
vmmName

Stored Procedures:
spmmName[Wrk]

в именах слова сокращенные с большой буквы.
tsoSalesOrder, tarInvoice, vimItem, spPrintInvoiceWrk

В таблицах ключи так обозначены:
SalesOrderKey - он генерируется (int), NOT Identity.
SalesOrderNo - естественный ключ. Ето индекс

И так везде. 2 столбца для ключей. Один сгенерированный (..Key) и второй естественный (юзер смотрит на него - ...ID или ...No)


В принципе я привык уже. И очень удобно.
Работаю над другим проектом и хочу делать это удобным для всех.

Смотрю на другие базы - там все: some_kind_of_table_name, table_id
и в таком роде.

Вот мне и интересно что-же все-таки красивее и лучше.
Передумывать это пока можно или делать как привык ?
Merle
Уже с Приветом
Posts: 109
Joined: 26 Sep 2002 12:24

Post by Merle »

Ну, я обычно придерживаюсь вот этих правил:
http://www.rsdn.ru/?Forum/?mid=345997
User avatar
Dmitry67
Уже с Приветом
Posts: 28294
Joined: 29 Aug 2000 09:01
Location: SPB --> Gloucester, MA, US --> SPB --> Paris

Post by Dmitry67 »

Как я ненавижу когда все stored proc называют sp...
Ну в языках обычных имена всех переменных не начинают с var...
извините крик души
Еще хуже когда stored proc нвчинают называть sp_... видимо посмотрев системные (дело в том что в MS SQL жто очень нехорошо)
Зарегистрированный нацпредатель, удостоверение N 19719876044787 от 22.09.2014
oMoses
Уже с Приветом
Posts: 1255
Joined: 01 Jun 1999 09:01
Location: Irkutsk.RU -> Hamden, CT-> Princeton, NJ, USA

Post by oMoses »

А мои индусы так и именуют все: FK_, PK_, T_, SP_, VW_ ну и т.д.
Их много, а я один - устал бороться...
[b]"Счастье для всех, даром, и пусть никто не уйдет обиженный!"[/b]
[i]А. и Б. Стругацкие, "Пикник на обочине"[/i]
User avatar
KVA
Уже с Приветом
Posts: 5347
Joined: 03 Feb 1999 10:01
Location: NJ, USA

Post by KVA »

На счет стандарта не знаю, но у нас например так.

Tables:
tbl_<app>_<name> - (tbl_eq_order, tbl_fi_retail_history), где <app> сокращенное название приложения или модуля который использует эту таблицу. <app> может отсутствовать, если таблица используется всеми/несколькими приложениями в компании.

Fields:
ord_id, ioi_amt, lead_trn_ind, last_modified_dt

Stored Procs:
proc_<app>_<type><name> - (proc_eq_AddBroker, proc_fi_DeleteIssue, proc_ae_GetIssueDetails)

<app> - сокращенное название приложения
<name> - может быть Add, Delete, Get, List, Update, Can, Validate, Does или отсутствовать в некоторых случаях

Functions:
fn_<app>_<type><name> - (fn_eq_GetBrokerCode, fn_eq_ListSalesCoverage, fn_fi_RptListBestIndications)
User avatar
katit
Уже с Приветом
Posts: 23804
Joined: 05 Jul 2003 22:34
Location: Брест -> St. Louis, MO

Post by katit »

Dmitry67 wrote:Как я ненавижу когда все stored proc называют sp...


Да. Тоже читал что потенциально может быть медленно т.к. сервер проверяет не системная процедура-ли.

Вот нашел такой вариант. Вроде должно быть удобно:
User_Update
User_Select

и т.п. Там первое слово это с чем процедура работает а потом то что делает. Таким образом и группируется и вроде понятно про что...


С таблицами вроде разобрался. Только не могу решиться или именовать их в множественном числе?
Типа Customer или Customers?
User avatar
katit
Уже с Приветом
Posts: 23804
Joined: 05 Jul 2003 22:34
Location: Брест -> St. Louis, MO

Post by katit »

Тут еще такое.

Вроде как с таблицами определился.
Надо просто имя существительное использовать.

Типа Customer, Order

Есть еще вариант что надо называть во множественном числе как Customers, Orders

Кто что предпочитает и почему?

И еще. Т.к. часто view строится на одной таблице но "looked up" то фактически у меня будет таблица Order с FK CustomerKey и я буду создавать view c CustomerID.

Когда tOrder i vOrder то легко. А вот как теоретики предлагают именовать без префиксов то я не могу понять какое мне имя для view дать...

Ведь якобы это view и table одно и тоже с маленьким различием....
User avatar
Strannik223
Уже с Приветом
Posts: 569
Joined: 14 Dec 2003 04:06
Location: Львов->Киев->Торонто

Post by Strannik223 »

katit wrote:Вроде как с таблицами определился.
Надо просто имя существительное использовать.

Типа Customer, Order

Есть еще вариант что надо называть во множественном числе как Customers, Orders

Кто что предпочитает и почему?


Я предпочитаю единственное число.
Потому что кода пишешь where Customer.Name='Sidor' множественное звучит нелогично. Customers - это группа, и у них не может быть одно имя на всех :) У каждого свое имя, даже когда оно совпадает для нескольких человек.
А вообще это дело привычки/религии.
Никакой разрухи нет. (с) Проф. Преображенский.
User avatar
katit
Уже с Приветом
Posts: 23804
Joined: 05 Jul 2003 22:34
Location: Брест -> St. Louis, MO

Post by katit »

Strannik223 wrote:Я предпочитаю единственное число.


Мне тоже нравится. Тогда и ключи хорошо именуются и соединяющие таблицы...

Но есть тут такой теоретик Joe Celko который проповедует множественное число типа как "Employee" -> "Employees", but "Personnel" is the best
Т.к. таблица якобы коллекция и следовательно надо именовать во множественном. А если в таблице одна запись то можно в единственном. Хотя как вы сказали в коде намного лучше смотрится единственное число.
А если смотреть на майкрософтовские примеры то они пишут во множественном..
Что есть более распространенное?

Еще-бы слов типа "Personnel" набрать для всего :D

Видимо будем писать в единственном...

Return to “Вопросы и новости IT”