Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2013.04.28;
Скачать: [xml.tar.bz2];

Вниз

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

 
Игорь Шевченко ©   (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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.62 MB
Время: 0.005 c
15-1356640202
Юрий
2012-12-28 00:30
2013.04.28
С днем рождения ! 28 декабря 2012 пятница


2-1350293913
Дмитрий С
2012-10-15 13:38
2013.04.28
Сравнить два пути к файлу.


2-1350057756
Mihaip
2012-10-12 20:02
2013.04.28
Вопрос по UDP


15-1356364173
Es
2012-12-24 19:49
2013.04.28
ADO, ошибка в провайдере MSDAORA при select... for update


15-1356769502
Undertacker
2012-12-29 12:25
2013.04.28
Как прочитать сохраненные файлы Оперы-мини?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский