Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2013.04.28;
Скачать: CL | DM;

Вниз

Название поля первичного ключа.   Найти похожие ветки 

 
Игорь Шевченко ©   (2012-12-24 16:20) [40]

Joe Celko давно все рассказал, как и что называть

http://books.google.ru/books/about/Joe_Celko_s_SQL_Programming_Style.html?id=90c41yKz3IUC&redir_esc=y


 
MsGuns ©   (2012-12-24 16:21) [41]

>Компромисс1   (24.12.12 15:51) [36]
>Странно, что не введен алиас для temp_nalog, хотя введен алиас для obor_info

Все просто: кто-то когда-то написал запрос, потом кто-то другой его точил, при этом прикрутил алиас туда, куда ему показалось "понятней", потом возможно, был третий и т.д. Все они, вероятно, работали по "правилам". А результат - "на лице".

Похожая система присутствует почти во всех оракульных логиках, с которыми приходилось иметь дело, независимо от размеров БД, предметной области, квалификации программистов и т.д. Такое ощущение, что все проектировалось одним мегасуперораклистом, а потом допиливалось скубентками-третьекурсницами по скорому :)


 
Jeer ©   (2012-12-24 16:24) [42]


> Меня иногда пугает глобальность и важность вопросов, поднимаемых
> и - главное - на полном серьезе обсуждаемых на этом форуме
> :)


Готовимся разрабатывать авианосцы и софт для них - там нет мелочей:)


 
Jeer ©   (2012-12-24 16:25) [43]


> Примечание. При использование суффиксов однородные семантически
> поля будут стоять  рядом в алфавитно-упорядоченном списке.
>


Да это при любых поименованиях важно.


 
MsGuns ©   (2012-12-24 16:27) [44]

>Игорь Шевченко ©   (24.12.12 16:20) [40]

Хорошая книжка. Наверное, этот Селко из Таити. Там приняты имена типа Тоткогородилаженарыбакапоймавшегоназаходесолнцарыбубольшуючемсамыйбольшойаллигат орвгодкогдабылбольшойнедородкреветки


 
знайка   (2012-12-24 16:31) [45]

SuperPuperDatabaseSuperPuperTableSuperPuperField сразу становится все яснее ясного. :)
Зачем увеличивать число сущностей без крайней необходимости?


 
Jeer ©   (2012-12-24 16:31) [46]

Для DBTree вариантов тоже давно выработался стандартный для меня принцип наименования суффиксов:

ID - пк (причем - autoinc навсегда исключен и выброшен на помойку)
REF - внутренняя ссылка на пк
[LINK] - внешняя ссылка
[LEV] - уровень узла в дереве
ORD - порядок сортировки
TXT - наименование
[MEM] - мемо

[] - необязательные поля


 
Jeer ©   (2012-12-24 16:32) [47]


> Там приняты имена

ага, только без перевода на русский :)


 
MsGuns ©   (2012-12-24 16:32) [48]

Вообще поражает талант америкосов писать толстенные книжки на высосанные из пальца темки. И совершенно шокирует способность тех же америкосов покупать эти книжки огромными тиражами и даже их читать :)


 
MsGuns ©   (2012-12-24 16:35) [49]

>причем - autoinc навсегда исключен и выброшен на помойку

А ренегатов, таки допускающих такую крамолу - сразу на бубуку !


 
Jeer ©   (2012-12-24 17:10) [50]


> сразу на бубуку !


Тебе виднее, раз знаешь куда и как:)


 
Ega23 ©   (2012-12-24 17:13) [51]


> Тебе виднее, раз знаешь куда и как:)


Инструмент "сиквенса" для определённой "области видимости" должен быть.
Использовать его или нет - дело личных половых предпочтений.


 
Jeer ©   (2012-12-24 17:50) [52]


> Инструмент "сиквенса" для определённой "области видимости"
> должен быть.


Инструменты у всех под рукой, кому надо и кто может - тот знает чем затачивать и для чего.
Кто не знает и не может - должен пройти этот путь.


 
знайка   (2012-12-24 17:54) [53]

А чем autoinc так не угодил?


 
Kerk ©   (2012-12-24 18:16) [54]


> Jeer ©   (24.12.12 16:24) [42]
>
> > Меня иногда пугает глобальность и важность вопросов, поднимаемых
> > и - главное - на полном серьезе обсуждаемых на этом форуме
> > :)
>
> Готовимся разрабатывать авианосцы и софт для них - там нет
> мелочей:)

Ну тогда да :)


 
Jeer ©   (2012-12-24 18:16) [55]

Холивары начинать не будем:)


 
Toha_Nik   (2012-12-24 19:16) [56]


> vuk ©   (24.12.12 15:54) [37]

Наверно да... и теоритетически правильно
Исключительно для меня проще - переименовать часто используемое ссылочное поле(но на памяти), написать комментарий при необходимости и при просмотре запроса прочитать этот комментарий, а не вспоминать префикс.

Это просто рассуждение, возможно не разрабатывал настолько сложные бызы...


 
Smile   (2012-12-24 20:15) [57]

Замечательный отлмчительный признак нашегш форума.
Автора топика уже нет как более полутора суток, а дискуссия продожается
:)


 
Аббат Пиккола   (2012-12-24 20:26) [58]

Kerk ©   (24.12.12 16:01) [39]
Меня иногда пугает глобальность и важность вопросов


Может быть вопрос о том, как назвать ребенка и не столь важен по сравнению с вопросом, когда или чем его кормить.
Но ведь именно этот вопрос всегда решается через обсуждение.
:)


 
Дмитрий С ©   (2012-12-25 01:36) [59]


> vuk ©   (24.12.12 14:53) [29]
> У нас делается так - для каждой таблицы выбирается префикс
> и все поля имеют вид Префикс_Имя. В связанных таблицах поля
> имеют те же имена, что и в основной.

В таком случае остается открытый вопрос по поводу двойных ссылок: когда одна таблица имеет две ссылки на другую.


> Ega23 ©   (24.12.12 16:00) [38]

От одного человека из вашей организации я слышал, что "перфиксы - зло".


 
Ega23 ©   (2012-12-25 08:24) [60]


> От одного человека из вашей организации я слышал, что "перфиксы - зло".

Ты имел какое-то отношение к НПК "Дедал"?


 
Jeer ©   (2012-12-25 09:13) [61]


> открытый вопрос


для некоторых давно закрыт -надо правильно проектировать базу.


 
Дмитрий С ©   (2012-12-25 10:51) [62]


> Ты имел какое-то отношение к НПК "Дедал"?
>

Нет, я, видимо, про другую организацию.


 
Ega23 ©   (2012-12-25 11:05) [63]


> Нет, я, видимо, про другую организацию.

В другой организации префиксы не жалуют, да. Стиль другой.
Впрочем, меня не парят оба способа. Хотя если с нуля начинать и иметь карт-бланш, то префиксы всё-таки наверное ставил бы.


 
vuk ©   (2012-12-25 11:10) [64]

to Дмитрий С ©   (25.12.12 01:36) [59]:

> В таком случае остается открытый вопрос по поводу двойных
> ссылок: когда одна таблица имеет две ссылки на другую.

Если ссылок необходимо несколько, то дополнительно в названии ссылающегося поля указывается контекст:

Clients
------------
cl_id int
cl_Name varchar
...

SomeOtherTable
------------
...
cl_id_Supplier int
...
cl_id_Recipient int
...


 
Игорь Шевченко ©   (2012-12-25 12:21) [65]


> Хотя если с нуля начинать и иметь карт-бланш, то префиксы
> всё-таки наверное ставил бы.


Путаницы с ними много


 
vuk ©   (2012-12-25 12:25) [66]

to Игорь Шевченко ©   (25.12.12 12:21) [65]:

> Путаницы с ними много

Например?


 
Eraser ©   (2012-12-25 12:26) [67]

Префиксы это зло, особенно если они повторяют название таблицы. Если так уж хочется подставить название таблицы, то это можно сделать и без префикса - table_name.field_name


 
Kerk ©   (2012-12-25 12:41) [68]

Я бы еще подумал над вопросом авторских прав. Что вы будете делать в том случае, если компания Apple в своей БД уже использовала имя NEW_ID?


 
Аббат Пиккола   (2012-12-25 12:56) [69]

2 Дмитрий С ©

Есть еще один путь для решения проблемы "двойных ссылок". Использовать не имена, а типы полей.

На примере InterBase. Создаем таблицу Contragent. С "лаконичными" именами полей id, name. Создаем domain  TContragent на основе integer not null.

А в таблице SomeOtherTable две ссылки на таблицу Contragent создаем с общим типом TContragent, но разными именами:

SomeOtherTable
---------------------------
Id              integer not null
OrderDate  date not null
OrderNr     varchar(20) not null
Customer   TContragent
Vendor      TContragent

Тогда мы получаем максимально лаконичное именование полей и нам даже не нужно использовать суффикы Id или иные признаки для ссылочных полей в их наименованиях, вместо этого мы оговорили в типах полей все, что нам нужно.


 
знайка   (2012-12-25 13:01) [70]

Еще для процедур префиксы, в целях группировки, а следовательно и навигации. Помогает. А для полей смысл в них мало понятен.


 
Игорь Шевченко ©   (2012-12-25 13:04) [71]

vuk ©   (25.12.12 12:25) [66]


> Например?


CREATE OR REPLACE TRIGGER taiu_dic_currency_names
AFTER INSERT OR UPDATE ON dic_currency_names
FOR EACH ROW
BEGIN
 IF :NEW.crn_culture = se_culture_tools.se_int_culture THEN
   UPDATE dic_currency_base
      SET cur_name_int = :NEW.crn_name
    WHERE cur_code = :NEW.crn_code;
 ELSIF :NEW.crn_culture = se_culture_tools.se_nat_culture THEN
   UPDATE dic_currency_base
      SET cur_name_nat = :NEW.crn_name
    WHERE cur_code = :NEW.crn_code;
 END IF;
END;
/


достаточно забыть/спутать одну букву :)


 
Игорь Шевченко ©   (2012-12-25 13:05) [72]

Аббат Пиккола   (25.12.12 12:56) [69]

Домены не везде есть


 
vuk ©   (2012-12-25 13:18) [73]

to Игорь Шевченко ©   (25.12.12 13:04) [71]:

> достаточно забыть/спутать одну букву :)

Ну, некоторые вообще не приходя в сознание кодят. Но это же не повод. :) На самом деле да, проблема может возникнуть, конечно, но, как мне кажется, ты её несколько преувеличиваешь. Впрочем, я тут исключительно по себе сужу, у нас никто пока в основной базе с её около 1000 таблиц в префиксах не путается. А вот то, что по имени поля почти сразу видно где искать его источник и то, что поля называются везде и всегда одинаково и не переименовываются в запросах (за тем исключением, когда таблица присоединяется несколько раз), оно сильно облегчает жизнь.


 
Anatoly Podgoretsky ©   (2012-12-25 13:19) [74]


> Нет, я, видимо, про другую организацию.

И ее закроют.


 
Ega23 ©   (2012-12-25 13:20) [75]

Единственный плюс в префиксах: для join-запросов, когда несколько "ID" попадается, не надо as вписывать.
Больше не вижу, если честно.


 
Медвежонок Пятачок ©   (2012-12-25 13:22) [76]

Банальнейший пример:
ловим исключение : бла бла бла нарушено ограничение такое то обнаружена порожденная запись <Имя поля>

далее desc <имя поля> - и видим полную картину маслом.
Если конечно префикс есть.
Если нет, то ничего не видим.


 
Медвежонок Пятачок ©   (2012-12-25 13:22) [77]

пардон, не desc, а view конечно же


 
vuk ©   (2012-12-25 13:27) [78]

to Ega23 ©   (25.12.12 13:20) [75]:

> Единственный плюс в префиксах: для join-запросов, когда
> несколько "ID" попадается, не надо as вписывать.

Если бы тока ID, то оно еще ладно, а то ведь сущности обрастают всякой "фигнёй" типа наименований, дополнительной информации или там, например, дат создания/модификации. :)


 
Игорь Шевченко ©   (2012-12-25 13:34) [79]

vuk ©   (25.12.12 13:18) [73]


>  у нас никто пока в основной базе с её около 1000 таблиц
> в префиксах не путается


У нас поболе будет. Одно время практиковал создавать таблицы с именами полей с префиксом, а view для них, соответственно, с именами полей без префиксов. Везде есть свои плюсы и минусы.


 
Игорь Шевченко ©   (2012-12-25 13:34) [80]

Медвежонок Пятачок ©   (25.12.12 13:22) [76]


> нарушено ограничение такое то


Обычно достаточно имени ограничения



Страницы: 1 2 3 вся ветка

Текущий архив: 2013.04.28;
Скачать: CL | DM;

Наверх




Память: 0.64 MB
Время: 0.011 c
15-1356650625
ННН
2012-12-28 03:23
2013.04.28
Где находится IE?


15-1356381002
Юрий
2012-12-25 00:30
2013.04.28
С днем рождения ! 25 декабря 2012 вторник


4-1264961719
ProgRAMmer Dimonych
2010-01-31 21:15
2013.04.28
Получить шрифт заголовка окна без обращения к реестру


15-1356681047
Dmitry1987
2012-12-28 11:50
2013.04.28
Verisign vs GlobalSign


2-1349768093
thely
2012-10-09 11:34
2013.04.28
показ информ окна