|
подскажите хорошую практику наименования связанных таблиц
|
|||
---|---|---|---|
#18+
softwarer, Раньше тоже делил таблицы по группам сущностей, но потом пришли "муки творчества". Поясню. У меня была информационная система по торговле фруктами. Параллельно создал чисто медицинскую информационную систему (МИС). Потом попросили на медицинскую информационную систему "навесить" материальное обеспечение (лекарственное, операционное), лечебное питание. Самое лучшее, что придумал - слить базы в одну, соответственно появились таблицы относящиеся к условно назовем "торговле" и "медицине", все мои красивые префиксы стали совсем не "красивые", "лезли в глаз". Ну и почикал все префиксы. По поводу студентов - разделил новую группу на две части, создал две идентичные БД с именованием "Х", и с именованием "_ID", попросил написать несколько идентичных запросов на связи нескольких таблиц, среднее время на написание текстов запросов и подсчитал. Кстати, там-же выяснил, что если связывать таблицы со связью вида " ... a.id = b.staff_id and ..." делают ошибки, связывают не те таблицы, запрос выполняется, а в результатах каша. А если связывать таблицы связью вида " ... a.staff_id = b.staff_id and ...", то ошибок вообще нет, связывают на автомате правильно. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.09.2020, 17:31 |
|
подскажите хорошую практику наименования связанных таблиц
|
|||
---|---|---|---|
#18+
У меня одна табличка во множественном числе: Users. Ибо в единственном - в FB нельзя. :) ... |
|||
:
Нравится:
Не нравится:
|
|||
08.09.2020, 17:42 |
|
подскажите хорошую практику наименования связанных таблиц
|
|||
---|---|---|---|
#18+
zeon11 все мои красивые префиксы стали совсем не "красивые", "лезли в глаз" Вот тут, мне кажется, вопрос в логике выбора префиксов. Потому что этот пример хорошо ложится в то, что я сказал про префиксы по предметным областям; при удачном выборе они бы вообще идеально слились. И модульность я рассматриваю как раз как серьёзный аргумент в пользу этого подхода; появляется возможность модульно разрабатывать систему (разделяя её вот такими префиксами) и как угодно выделять-комбинировать. Я согласен с тем, что удачный выбор префиксов - довольно сложная задача. Но работать с ними мне оказывается наааамного удобнее. zeon11 По поводу студентов - разделил новую группу на две части, создал две идентичные БД с именованием "Х", и с именованием "_ID",попросил написать несколько идентичных запросов на связи нескольких таблиц, среднее время на написание текстов запросов и подсчитал. Мне кажется, это как минимум не проверка восприятия текста. Какое восприятие, когда запрос пишется с нуля? Кроме того, думаю, результат такого теста существенно случаен - слишком мало студентов в выборке, результат зависит от того, насколько толковые попали в каждую. Ну и наконец, он может зависеть от деталей типа, например, автокомплита - достаточно ткнуть 'X', чтобы выпало название ключевого поля, вот плохо владеющие клавиатурой студенты и показывают разницу в этих подходах. В общем, я не переоценивал бы такое измерение. zeon11 Кстати, там-же выяснил, что если связывать таблицы со связью вида " ... a.id = b.staff_id and ..." делают ошибки, связывают не те таблицы, запрос выполняется, а в результатах каша. А если связывать таблицы связью вида " ... a.staff_id = b.staff_id and ...", то ошибок вообще нет, связывают на автомате правильно. Более грамотные люди в обоих случаях справляются. Но в целом я согласен, когда я выше сказал про то, что такие строчки лучше, я имел в виду именно этот аспект. Их легче надёжно написать и легче глазами увидеть, что всё в порядке. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.09.2020, 17:51 |
|
подскажите хорошую практику наименования связанных таблиц
|
|||
---|---|---|---|
#18+
ъъъъъ У меня одна табличка во множественном числе: Users. Ибо в единственном - в FB нельзя. :) Дарю: exercist (Если что, тут игра слов) ... |
|||
:
Нравится:
Не нравится:
|
|||
08.09.2020, 17:56 |
|
подскажите хорошую практику наименования связанных таблиц
|
|||
---|---|---|---|
#18+
softwarer, да, и в том числе "автокомплита - достаточно ткнуть 'X' это тоже даёт ускорение. Мы-же знаем, что связывать можно только по ключам, пишем с десяток таблиц, даем им алиасы, а потом начинаем "вязать" свитер запрос а.x.... = b.x.... . А чтобы быстро "вязать", не вспоминать названия таблиц, нужно чтобы индексные поля начинались одинаково, например с "ID_", по мне уже слишком громоздко, три символа тратится! Вот и выбрал символ "Х", слов на "Х" практически в английском языке нет (в отличие от русского ;-) ... |
|||
:
Нравится:
Не нравится:
|
|||
08.09.2020, 18:12 |
|
подскажите хорошую практику наименования связанных таблиц
|
|||
---|---|---|---|
#18+
zeon11 нужно чтобы индексные поля начинались одинаково, например с "ID_", по мне уже слишком громоздко, три символа тратится! Наиболее важная и одновременно наиболее медленная часть процесса разработки называется "думать". Именно её следует оптимизировать для достижения наилучшего результата. Когда речь заходит о скорости набора текста - это означает, что подразумеваются столь простые ситуации, в что голова в их решении в принципе не участвует. И методики, выработанные и оптимизированные для таких ситуаций, становятся неэффективными, как только голову таки приходится включить. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.09.2020, 18:24 |
|
подскажите хорошую практику наименования связанных таблиц
|
|||
---|---|---|---|
#18+
egorych softwarer Первичный ключ у этой таблицы назвать client_privilege_pk. А то поле id, о котором Вы говорите, чаще всего в ней вообще не нужно. egorych, тут, в данном конкретном случае, что Вы привели, вы увидели отношение многие-ко-многим, и решили натолкать туда ещё всякого барахла, но не увидели, что задача с барахлом "тянет" на 6НФ, соответственно тут лучше создать новую сущность, назовем её например EXEMPTION, соответственно первичный ключ таблицы будет называться EXEMPTION_ID, внешние ключи CLIENT_ID, PRIVILEGE_ID, ну и "до кучи" DOCUMENT_ID, а также поля DATE_BEGIN, DATE_END и т.д. и тогда не придётся "как-то взаимодействовать". ... |
|||
:
Нравится:
Не нравится:
|
|||
08.09.2020, 19:07 |
|
подскажите хорошую практику наименования связанных таблиц
|
|||
---|---|---|---|
#18+
zeon11 тут лучше создать новую сущность, назовем её например EXEMPTION я леплю ID как имя первичного ключа во всех таблицах, где он уместен, хотя аргументы ув. авторов "если связывать таблицы связью вида " ... a.staff_id = b.staff_id and ...", то ошибок вообще нет, связывают на автомате правильно" и " Их легче надёжно написать и легче глазами увидеть, что всё в порядке" выглядят сильно, бессмысленно их оспаривать. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.09.2020, 20:25 |
|
подскажите хорошую практику наименования связанных таблиц
|
|||
---|---|---|---|
#18+
Во! Имя поля PK в форме <ИмяСущности>_id в FireBird позволяет использовать NATURAL джойн! ... |
|||
:
Нравится:
Не нравится:
|
|||
08.09.2020, 21:41 |
|
подскажите хорошую практику наименования связанных таблиц
|
|||
---|---|---|---|
#18+
Использование natural join в продуктовом коде лично я склонен премировать. Тоже натурально. А точнее - большим анальным дилдо, становящимся б/у прямо в ходе вручения, если можно его так назвать. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.09.2020, 21:44 |
|
подскажите хорошую практику наименования связанных таблиц
|
|||
---|---|---|---|
#18+
softwarer, это да, но ведь появляется возможность. :) ... |
|||
:
Нравится:
Не нравится:
|
|||
08.09.2020, 21:54 |
|
подскажите хорошую практику наименования связанных таблиц
|
|||
---|---|---|---|
#18+
zeon11 1. Никакой транслитерации, только правильное английское название сущности, .т.к. прочитает любой человек, будь то испанец или японец И каким будет «правильное английское название сущности» для ИНН, ОСАГО, ФИО? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2020, 09:23 |
|
подскажите хорошую практику наименования связанных таблиц
|
|||
---|---|---|---|
#18+
Alibek B., ФИО - это не сущность, это атрибуты сущности "Person" FirstName SurName Patronymic ... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2020, 09:34 |
|
подскажите хорошую практику наименования связанных таблиц
|
|||
---|---|---|---|
#18+
Если ФИО приходит откуда-то извне, то это будет отдельное поле ФИО. Разбивать его на составляющие не стоит, автоматически это сделать не всегда возможно. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2020, 10:24 |
|
подскажите хорошую практику наименования связанных таблиц
|
|||
---|---|---|---|
#18+
Alibek B. zeon11 1. Никакой транслитерации, только правильное английское название сущности, .т.к. прочитает любой человек, будь то испанец или японец И каким будет «правильное английское название сущности» для ИНН, ОСАГО, ФИО? Всё есть, если поискать https://englishfull.ru/znat/inn-po-angliyski.html Если Вы думаете, что это наши такие яйцеголовые, всё придумали, то ошибаетесь, вся бизнеслогика придумана там, а наши передрали, а поскольку передрали криво в силу разных причин, то у нас и процветают программы в жёлтых коробках, которые там ни во что не упёрлись. Ну и по поводу ФИО. По хорошему чтобы правильно нормализовать ФИО нужно как минимум три таблицы: Таблица имен, таблица отчеств, Таблица фамилий При определённых требованиях, я так и делаю. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2020, 10:26 |
|
подскажите хорошую практику наименования связанных таблиц
|
|||
---|---|---|---|
#18+
zeon11 По хорошему чтобы правильно нормализовать ФИО нужно как минимум три таблицы: Таблица имен, таблица отчеств, Таблица фамилий Я всегда с удовольствием наблюдаю, как в такие структуры ложится Пабло Диего Хосе Франсиско де Паула Хуан Непомучено Мария де лос Ремедиос Сиприано де ла Сантисима Тринидад Мартир Патрисио Руис и Пикассо. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2020, 10:29 |
|
подскажите хорошую практику наименования связанных таблиц
|
|||
---|---|---|---|
#18+
zeon11 Лучше использовать транслит, чем подобное. ОКОНХ (Общероссийский Классификатор Отраслей Народного Хозяйства) — OKONKh (All-Russian Classifier of Economy Branches) ОКПО (Общероссийский Классификатор Предприятий и Организаций) — OKPO (All-Russian Classifier of Enterprises and Organizations) СНИЛС (Страховой Номер Индивидуального Лицевого Счёта) — Insurance Number of Individual Ledger Account ... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2020, 10:31 |
|
подскажите хорошую практику наименования связанных таблиц
|
|||
---|---|---|---|
#18+
softwarer zeon11 По хорошему чтобы правильно нормализовать ФИО нужно как минимум три таблицы: Таблица имен, таблица отчеств, Таблица фамилий Я всегда с удовольствием наблюдаю, как в такие структуры ложится Пабло Диего Хосе Франсиско де Паула Хуан Непомучено Мария де лос Ремедиос Сиприано де ла Сантисима Тринидад Мартир Патрисио Руис и Пикассо. Хе-хе-хе! А ведь я специально про нормализацию ФИО тут загнул! Знал, что вспомнят! Ждал, кто про нашего бедного Пабло Диего и т.д. напомнит. Его, бедняжку, уже лет как 10 по этому форуму мусолят! ... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2020, 10:41 |
|
подскажите хорошую практику наименования связанных таблиц
|
|||
---|---|---|---|
#18+
softwarer zeon11 По хорошему чтобы правильно нормализовать ФИО нужно как минимум три таблицы: Таблица имен, таблица отчеств, Таблица фамилий Я всегда с удовольствием наблюдаю, как в такие структуры ложится Пабло Диего Хосе Франсиско де Паула Хуан Непомучено Мария де лос Ремедиос Сиприано де ла Сантисима Тринидад Мартир Патрисио Руис и Пикассо. А если серьёзно, то тут три таблицы: первая - Personnel в которой только одно поле Personnel_ID, вторая таблица имен и третья таблица отношений многие-ко-многим связывающая эти две таблицы, причем в таблице связи есть поле, определяющее последовательность имен. С этой структурой можно хранить и наши ФИО, а также ФИО с окончаниями -оглы, -кызы, -оол и т.д. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2020, 11:05 |
|
подскажите хорошую практику наименования связанных таблиц
|
|||
---|---|---|---|
#18+
zeon11 причем в таблице связи есть поле, определяющее последовательность имен. И поле, определяющее тип конкретной частицы имени / роль в полном имени. Потому что если какая-нибудь процедура сократит "Вишванатан Ананд" до "В. Ананд", а "Полад Бюль-Бюль оглы" - до "П. Б. оглы" - это будет не совсем правильно ... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2020, 11:24 |
|
подскажите хорошую практику наименования связанных таблиц
|
|||
---|---|---|---|
#18+
softwarer zeon11 причем в таблице связи есть поле, определяющее последовательность имен. И поле, определяющее тип конкретной частицы имени / роль в полном имени. Потому что если какая-нибудь процедура сократит "Вишванатан Ананд" до "В. Ананд", а "Полад Бюль-Бюль оглы" - до "П. Б. оглы" - это будет не совсем правильно Да, согласен. Таблица чем удобна? Тем, что быстро можем определить правила изменения, например, имени. Предположим, заказчику неожиданно понадобилось транслитерировать имена, например в китайский язык. Если мы храним ФИО как обычно принято в одной строке, то эта новая задача поставит нас в тупик, запаримся реализовывать. А если данные нормализованы, то мы просто в таблицу имён добавляем поле, хранящее нужное нам преобразование. И всё! преобразовываем существующее поле ИМЯ в новое поле КИТАЙСКОЕ_ИМЯ, меняем в результирующем запросе поле ИМЯ на КИТАЙСКОЕ_ИМЯ и рассылаем письма китайцам. На всё-про-всё 30 минут. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2020, 11:43 |
|
подскажите хорошую практику наименования связанных таблиц
|
|||
---|---|---|---|
#18+
zeon11 Таблица чем удобна? Чтобы не навводили туда Аркадия, Арадия и Акрадия в первую очередь. Если бухи вводят руками - это всегда бардак. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2020, 12:48 |
|
подскажите хорошую практику наименования связанных таблиц
|
|||
---|---|---|---|
#18+
zeon11 наши ФИО zeon11 -оглы, -кызы Золотая Орда? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2020, 18:25 |
|
подскажите хорошую практику наименования связанных таблиц
|
|||
---|---|---|---|
#18+
GrigoriyFomin Доброго дня. Подскажите академическое красивое решение именования таблиц и их полей при проектировании базы. Есть справочник клиентов CLIENTS, ключевое поле CLID, есть справочник льгот BENS, ключевое поле BNID и есть таблица со связью клиента и льгот. Как красиво ее назвать (таких троек таблиц будет много по разным сущностям), и как понятно назвать связывающую таблицу и ее поля (пара клиента и льготы)? Выработайте для команды ваших программистов правила именования объектов БД и строго их придерживайтесь. пусть они будут не самыми совершенными, но будут. Это лучше, чем разработка без каких либо правил. За основу возьмите правила, уже разработанные другими. Предполагаю, что такие можно найти в интернете. По мере работы выявятся несовершенства, которые вы исправите. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2020, 19:14 |
|
подскажите хорошую практику наименования связанных таблиц
|
|||
---|---|---|---|
#18+
egorych softwarer В-четвёртых, таблицу связи, если она понадобится, назвать client_privilege. Первичный ключ у этой таблицы может быть составным. Код: plsql 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2020, 19:19 |
|
|
start [/forum/topic.php?fid=32&msg=39996672&tid=1539838]: |
0ms |
get settings: |
8ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
26ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
63ms |
get tp. blocked users: |
3ms |
others: | 248ms |
total: | 377ms |
0 / 0 |