powered by simpleCommunicator - 2.0.48     © 2025 Programmizd 02
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / подскажите хорошую практику наименования связанных таблиц
25 сообщений из 132, страница 2 из 6
подскажите хорошую практику наименования связанных таблиц
    #39996658
zeon11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer,
Раньше тоже делил таблицы по группам сущностей, но потом пришли "муки творчества".
Поясню. У меня была информационная система по торговле фруктами. Параллельно создал чисто медицинскую
информационную систему (МИС). Потом попросили на медицинскую информационную систему "навесить" материальное обеспечение (лекарственное, операционное), лечебное питание. Самое лучшее, что придумал - слить базы в одну, соответственно появились таблицы относящиеся к условно назовем "торговле" и "медицине", все мои красивые префиксы стали совсем не "красивые", "лезли в глаз". Ну и почикал все префиксы.
По поводу студентов - разделил новую группу на две части, создал две идентичные БД с именованием "Х", и с именованием "_ID",
попросил написать несколько идентичных запросов на связи нескольких таблиц, среднее время на написание текстов запросов и подсчитал.
Кстати, там-же выяснил, что если связывать таблицы со связью вида " ... a.id = b.staff_id and ..." делают ошибки, связывают не те таблицы, запрос выполняется, а в результатах каша. А если связывать таблицы связью вида " ... a.staff_id = b.staff_id and ...",
то ошибок вообще нет, связывают на автомате правильно.
...
Рейтинг: 0 / 0
подскажите хорошую практику наименования связанных таблиц
    #39996661
ъъъъъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У меня одна табличка во множественном числе: Users.
Ибо в единственном - в FB нельзя. :)
...
Рейтинг: 0 / 0
подскажите хорошую практику наименования связанных таблиц
    #39996664
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zeon11
все мои красивые префиксы стали совсем не "красивые", "лезли в глаз"

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

Я согласен с тем, что удачный выбор префиксов - довольно сложная задача. Но работать с ними мне оказывается наааамного удобнее.

zeon11
По поводу студентов - разделил новую группу на две части, создал две идентичные БД с именованием "Х", и с именованием "_ID",попросил написать несколько идентичных запросов на связи нескольких таблиц, среднее время на написание текстов запросов и подсчитал.

Мне кажется, это как минимум не проверка восприятия текста. Какое восприятие, когда запрос пишется с нуля? Кроме того, думаю, результат такого теста существенно случаен - слишком мало студентов в выборке, результат зависит от того, насколько толковые попали в каждую. Ну и наконец, он может зависеть от деталей типа, например, автокомплита - достаточно ткнуть 'X', чтобы выпало название ключевого поля, вот плохо владеющие клавиатурой студенты и показывают разницу в этих подходах.

В общем, я не переоценивал бы такое измерение.

zeon11
Кстати, там-же выяснил, что если связывать таблицы со связью вида " ... a.id = b.staff_id and ..." делают ошибки, связывают не те таблицы, запрос выполняется, а в результатах каша. А если связывать таблицы связью вида " ... a.staff_id = b.staff_id and ...", то ошибок вообще нет, связывают на автомате правильно.

Более грамотные люди в обоих случаях справляются. Но в целом я согласен, когда я выше сказал про то, что такие строчки лучше, я имел в виду именно этот аспект. Их легче надёжно написать и легче глазами увидеть, что всё в порядке.
...
Рейтинг: 0 / 0
подскажите хорошую практику наименования связанных таблиц
    #39996666
zeon11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ъъъъъ
У меня одна табличка во множественном числе: Users.
Ибо в единственном - в FB нельзя. :)


Дарю: exercist

(Если что, тут игра слов)
...
Рейтинг: 0 / 0
подскажите хорошую практику наименования связанных таблиц
    #39996672
zeon11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer,
да, и в том числе "автокомплита - достаточно ткнуть 'X'
это тоже даёт ускорение. Мы-же знаем, что связывать можно только по ключам, пишем с десяток таблиц, даем им алиасы,
а потом начинаем "вязать" свитер запрос а.x.... = b.x.... . А чтобы быстро "вязать", не вспоминать названия таблиц,
нужно чтобы индексные поля начинались одинаково, например с "ID_", по мне уже слишком громоздко, три символа тратится!
Вот и выбрал символ "Х", слов на "Х" практически в английском языке нет (в отличие от русского ;-)
...
Рейтинг: 0 / 0
подскажите хорошую практику наименования связанных таблиц
    #39996674
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zeon11
нужно чтобы индексные поля начинались одинаково, например с "ID_", по мне уже слишком громоздко, три символа тратится!

Наиболее важная и одновременно наиболее медленная часть процесса разработки называется "думать". Именно её следует оптимизировать для достижения наилучшего результата. Когда речь заходит о скорости набора текста - это означает, что подразумеваются столь простые ситуации, в что голова в их решении в принципе не участвует. И методики, выработанные и оптимизированные для таких ситуаций, становятся неэффективными, как только голову таки приходится включить.
...
Рейтинг: 0 / 0
подскажите хорошую практику наименования связанных таблиц
    #39996690
zeon11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
egorych
softwarer
Первичный ключ у этой таблицы назвать client_privilege_pk. А то поле id, о котором Вы говорите, чаще всего в ней вообще не нужно.
практика показывает обратное. Вырожденные связи, в которых есть только два атрибута-ссылки на связываемые сущности - живут обычно в воспалённом воображении ЧАЛа, в реальности, если рассматривать конкретный пример связи клиентов с действующими для них льготами, то, как минимум, нам потребуются ещё дата начала действия льготы, дата окончания действия льготы, ссылка на документ, на основании которого клиенту установлена эта льгота и т.д. Со всем этим придётся как-то взаимодействовать , и работать с id в такой таблице удобней, чем с составным ключом.

egorych,
тут, в данном конкретном случае, что Вы привели, вы увидели отношение многие-ко-многим, и решили натолкать туда ещё всякого барахла, но не увидели, что задача с барахлом "тянет" на 6НФ, соответственно тут лучше создать новую сущность, назовем её например EXEMPTION, соответственно первичный ключ таблицы будет называться EXEMPTION_ID, внешние ключи CLIENT_ID, PRIVILEGE_ID, ну и "до кучи" DOCUMENT_ID, а также поля DATE_BEGIN, DATE_END и т.д.
и тогда не придётся "как-то взаимодействовать".
...
Рейтинг: 0 / 0
подскажите хорошую практику наименования связанных таблиц
    #39996705
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zeon11
тут лучше создать новую сущность, назовем её например EXEMPTION
это хорошо, когда можно придумать однословное название для такой сущности. Бывают и более заковыристые случаи, вроде "группы привилегированных клиентов, входящие в группы рассылки электронной почты", замучаешься придумывать вменяемое короткое название ))
я леплю ID как имя первичного ключа во всех таблицах, где он уместен, хотя аргументы ув. авторов "если связывать таблицы связью вида " ... a.staff_id = b.staff_id and ...", то ошибок вообще нет, связывают на автомате правильно" и " Их легче надёжно написать и легче глазами увидеть, что всё в порядке" выглядят сильно, бессмысленно их оспаривать.
...
Рейтинг: 0 / 0
подскажите хорошую практику наименования связанных таблиц
    #39996721
ъъъъъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Во! Имя поля PK в форме <ИмяСущности>_id в FireBird позволяет использовать NATURAL джойн!
...
Рейтинг: 0 / 0
подскажите хорошую практику наименования связанных таблиц
    #39996722
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Использование natural join в продуктовом коде лично я склонен премировать. Тоже натурально. А точнее - большим анальным дилдо, становящимся б/у прямо в ходе вручения, если можно его так назвать.
...
Рейтинг: 0 / 0
подскажите хорошую практику наименования связанных таблиц
    #39996725
ъъъъъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
softwarer,

это да, но ведь появляется возможность. :)
...
Рейтинг: 0 / 0
подскажите хорошую практику наименования связанных таблиц
    #39996792
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zeon11

1. Никакой транслитерации, только правильное английское название сущности,
.т.к. прочитает любой человек, будь то испанец или японец

И каким будет «правильное английское название сущности» для ИНН, ОСАГО, ФИО?
...
Рейтинг: 0 / 0
подскажите хорошую практику наименования связанных таблиц
    #39996795
Сотрудник Главного Управления
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B.,

ФИО - это не сущность, это атрибуты сущности "Person"

FirstName
SurName
Patronymic
...
Рейтинг: 0 / 0
подскажите хорошую практику наименования связанных таблиц
    #39996813
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если ФИО приходит откуда-то извне, то это будет отдельное поле ФИО.
Разбивать его на составляющие не стоит, автоматически это сделать не всегда возможно.
...
Рейтинг: 0 / 0
подскажите хорошую практику наименования связанных таблиц
    #39996814
zeon11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B.
zeon11

1. Никакой транслитерации, только правильное английское название сущности,
.т.к. прочитает любой человек, будь то испанец или японец

И каким будет «правильное английское название сущности» для ИНН, ОСАГО, ФИО?


Всё есть, если поискать
https://englishfull.ru/znat/inn-po-angliyski.html

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

Ну и по поводу ФИО.
По хорошему чтобы правильно нормализовать ФИО нужно как минимум три таблицы: Таблица имен, таблица отчеств, Таблица фамилий
При определённых требованиях, я так и делаю.
...
Рейтинг: 0 / 0
подскажите хорошую практику наименования связанных таблиц
    #39996816
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zeon11
По хорошему чтобы правильно нормализовать ФИО нужно как минимум три таблицы: Таблица имен, таблица отчеств, Таблица фамилий

Я всегда с удовольствием наблюдаю, как в такие структуры ложится Пабло Диего Хосе Франсиско де Паула Хуан Непомучено Мария де лос Ремедиос Сиприано де ла Сантисима Тринидад Мартир Патрисио Руис и Пикассо.
...
Рейтинг: 0 / 0
подскажите хорошую практику наименования связанных таблиц
    #39996818
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zeon11

Всё есть, если поискать
https://englishfull.ru/znat/inn-po-angliyski.html


Лучше использовать транслит, чем подобное.
ОКОНХ (Общероссийский Классификатор Отраслей Народного Хозяйства) — OKONKh (All-Russ­ian Clas­si­fi­er of Econ­o­my Branch­es)
ОКПО (Общероссийский Классификатор Предприятий и Организаций) — OKPO (All-Russ­ian Clas­si­fi­er of Enter­pris­es and Orga­ni­za­tions)
СНИЛС (Страховой Номер Индивидуального Лицевого Счёта) — Insur­ance Num­ber of Indi­vid­ual Ledger Account
...
Рейтинг: 0 / 0
подскажите хорошую практику наименования связанных таблиц
    #39996820
zeon11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer
zeon11
По хорошему чтобы правильно нормализовать ФИО нужно как минимум три таблицы: Таблица имен, таблица отчеств, Таблица фамилий

Я всегда с удовольствием наблюдаю, как в такие структуры ложится Пабло Диего Хосе Франсиско де Паула Хуан Непомучено Мария де лос Ремедиос Сиприано де ла Сантисима Тринидад Мартир Патрисио Руис и Пикассо.


Хе-хе-хе! А ведь я специально про нормализацию ФИО тут загнул! Знал, что вспомнят! Ждал, кто про нашего бедного Пабло Диего и т.д. напомнит. Его, бедняжку, уже лет как 10 по этому форуму мусолят!
...
Рейтинг: 0 / 0
подскажите хорошую практику наименования связанных таблиц
    #39996827
zeon11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer
zeon11
По хорошему чтобы правильно нормализовать ФИО нужно как минимум три таблицы: Таблица имен, таблица отчеств, Таблица фамилий

Я всегда с удовольствием наблюдаю, как в такие структуры ложится Пабло Диего Хосе Франсиско де Паула Хуан Непомучено Мария де лос Ремедиос Сиприано де ла Сантисима Тринидад Мартир Патрисио Руис и Пикассо.


А если серьёзно, то тут три таблицы: первая - Personnel в которой только одно поле Personnel_ID, вторая таблица имен и третья таблица отношений многие-ко-многим связывающая эти две таблицы, причем в таблице связи есть поле, определяющее последовательность имен. С этой структурой можно хранить и наши ФИО, а также ФИО с окончаниями -оглы, -кызы, -оол и т.д.
...
Рейтинг: 0 / 0
подскажите хорошую практику наименования связанных таблиц
    #39996834
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zeon11
причем в таблице связи есть поле, определяющее последовательность имен.

И поле, определяющее тип конкретной частицы имени / роль в полном имени. Потому что если какая-нибудь процедура сократит "Вишванатан Ананд" до "В. Ананд", а "Полад Бюль-Бюль оглы" - до "П. Б. оглы" - это будет не совсем правильно
...
Рейтинг: 0 / 0
подскажите хорошую практику наименования связанных таблиц
    #39996848
zeon11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer
zeon11
причем в таблице связи есть поле, определяющее последовательность имен.

И поле, определяющее тип конкретной частицы имени / роль в полном имени. Потому что если какая-нибудь процедура сократит "Вишванатан Ананд" до "В. Ананд", а "Полад Бюль-Бюль оглы" - до "П. Б. оглы" - это будет не совсем правильно

Да, согласен. Таблица чем удобна? Тем, что быстро можем определить правила изменения, например, имени. Предположим, заказчику неожиданно понадобилось транслитерировать имена, например в китайский язык. Если мы храним ФИО как обычно принято в одной строке, то эта новая задача поставит нас в тупик, запаримся реализовывать. А если данные нормализованы, то мы просто в таблицу имён добавляем поле, хранящее нужное нам преобразование. И всё! преобразовываем существующее поле ИМЯ в новое поле КИТАЙСКОЕ_ИМЯ, меняем в результирующем запросе поле ИМЯ на КИТАЙСКОЕ_ИМЯ и рассылаем письма китайцам. На всё-про-всё 30 минут.
...
Рейтинг: 0 / 0
подскажите хорошую практику наименования связанных таблиц
    #39996887
Фотография crutchmaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zeon11
Таблица чем удобна?

Чтобы не навводили туда Аркадия, Арадия и Акрадия в первую очередь. Если бухи вводят руками - это всегда бардак.
...
Рейтинг: 0 / 0
подскажите хорошую практику наименования связанных таблиц
    #39997019
Сотрудник Главного Управления
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zeon11
наши ФИО

zeon11
-оглы, -кызы

Золотая Орда?
...
Рейтинг: 0 / 0
подскажите хорошую практику наименования связанных таблиц
    #39997038
Фотография Валерий Юринский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GrigoriyFomin
Доброго дня. Подскажите академическое красивое решение именования таблиц и их полей при проектировании базы.
Есть справочник клиентов CLIENTS, ключевое поле CLID, есть справочник льгот BENS, ключевое поле BNID и есть таблица со связью клиента и льгот. Как красиво ее назвать (таких троек таблиц будет много по разным сущностям), и как понятно назвать связывающую таблицу и ее поля (пара клиента и льготы)?

Выработайте для команды ваших программистов правила именования объектов БД и строго их придерживайтесь.
пусть они будут не самыми совершенными, но будут.
Это лучше, чем разработка без каких либо правил.

За основу возьмите правила, уже разработанные другими.
Предполагаю, что такие можно найти в интернете.

По мере работы выявятся несовершенства, которые вы исправите.
...
Рейтинг: 0 / 0
подскажите хорошую практику наименования связанных таблиц
    #39997042
Фотография Валерий Юринский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
egorych
softwarer
В-четвёртых, таблицу связи, если она понадобится, назвать client_privilege.
и как тогда назвать первичный ключ у этой таблицы? client_privilege_id? как то заковыристо, на мой вкус

Первичный ключ у этой таблицы может быть составным.
Код: plsql
1.
2.
CONSTRAINT client_privilege#p
   PRIMARY KEY(client_id, privilege_id)
...
Рейтинг: 0 / 0
25 сообщений из 132, страница 2 из 6
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / подскажите хорошую практику наименования связанных таблиц
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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