powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Ещё более нелепый вопрос для опытных профессионалов
25 сообщений из 39, страница 1 из 2
Ещё более нелепый вопрос для опытных профессионалов
    #36253394
Microbit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В развитие данной темы...

Как я описывал, у меня возникли "идейные" разногласия по структуре проектируемой БД с окружающими меня "специалистами". Поскольку к согласию мы не пришли, то ими была разработана "альтернативная" структура БД, в которой я увидел моменты, где идея нормализации, на мой взгляд, была доведена до абсурда.
В частности, информация о людях описывается следующим образом:
Есть таблица fio, каждая строка которой представляет отдельного человека. Из этой таблицы имеется 3 ссылки по вторичным ключам на три отдельные таблицы, каждая из которых представляет, соответственно, фамилии, имена, отчества. Предметная область не предполагает лингвистический анализ имен и фамилий :) То есть таким образом описываются обычные клиенты - физические лица.
В качестве аргумента ЗА именно такую структуру говорится "чтобы пользователи не ошибались при вводе одинаковых имен и фамилий".
С адресами та же ситуация:
Есть таблица адресов клиентов, которая (помимо первичного ключа) представляет собой набор вторичных ключей на соответствующие таблицы регионов, улиц, домов, корпусов домов и даже этажей. Причем эти таблицы представляют собой "голые справочники" никак не связанные между собой. То есть, например, в таблице домов "тупо" перечислены номера домов, которые никак не связаны с улицами. Дом 5 на улице Ленина и дом 5 на улице Троцкого, например, будет представлять собой одну запись в таблице домов и два адреса в таблице адресов будут ссылаться на эту запись.
Кроме того есть даже отдельные таблицы для квартир и комнат, при этом также не связанные с другими "адресными" таблицами (домов, улиц и прочего). Зато на эти таблицы имеются ссылки FK из таблицы клиентов. То есть от клиента есть ссылка на адрес (который описывает вплоть до дома), плюс ссылка на квартиру, плюс ссылка на комнату.
Аргументация - "номера квартир в домах повторяются, поэтому лучше их хранить в виде справочника и связь с клиентом делать ссылкой".

У меня всё тот же вопрос - или я дурак и чего-то не понимаю в этой жизни, или... ?
...
Рейтинг: 0 / 0
Ещё более нелепый вопрос для опытных профессионалов
    #36253421
Naf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
то есть все Ивановы ссылаются на одну запись Иванов?
С уважением, Naf
...
Рейтинг: 0 / 0
Ещё более нелепый вопрос для опытных профессионалов
    #36253434
Microbit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Nafто есть все Ивановы ссылаются на одну запись Иванов?
С уважением, Naf

Да-да. Именно так.

И ссылаются на ту же запись с номером квартиры (допустим 10), на которую ссылаются все другие Петровы, Сидоровы и прочие, также живущие в квартире №10, хоть и в других домах на других улицах :)
...
Рейтинг: 0 / 0
Ещё более нелепый вопрос для опытных профессионалов
    #36253465
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Microbit пишет:

> то есть все Ивановы ссылаются на одну запись Иванов?

> Да-да. Именно так.

Ужас.

>
> И ссылаются на ту же запись с номером квартиры (допустим 10), на которую
> ссылаются все другие Петровы, Сидоровы и прочие, также живущие в
> квартире №10, хоть и в других домах на других улицах :)

Тут принципиальная разница есть.

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

А квартира №10 -- это одна и та же квартира, тут решение
наоборот, вполне закономерно и правильно.
Если приписать атрибуты к квартире, они будут храниться
в БД только один раз.

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Ещё более нелепый вопрос для опытных профессионалов
    #36253485
Naf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv
А квартира №10 -- это одна и та же квартира, тут решение
наоборот, вполне закономерно и правильно.
Если приписать атрибуты к квартире, они будут храниться
в БД только один раз.
Сколько я понял автора как раз нет, ссылаются не на квартиру, а на номер - то есть все квартиры во всех домах, всех улиц и т.д.

К автору: а какова предметная область БД?
...
Рейтинг: 0 / 0
Ещё более нелепый вопрос для опытных профессионалов
    #36253486
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Microbit

бред.

Microbit
В качестве аргумента ЗА именно такую структуру говорится "чтобы пользователи не ошибались при вводе одинаковых имен и фамилий".Как это поможет "не ошибаться при вводе одинаковых имён и фамилий"??? Они хоть сказали? Или они ничего не говорят, бешенно вращают глазами и нормализуют, нормализуют... :-)
...
Рейтинг: 0 / 0
Ещё более нелепый вопрос для опытных профессионалов
    #36253629
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Microbit
У меня всё тот же вопрос - или я дурак и чего-то не понимаю в этой жизни, или... ?
Нормальный подход - имеет право на жизнь. В отдельных случаях бывает единственно возможным.
...
Рейтинг: 0 / 0
Ещё более нелепый вопрос для опытных профессионалов
    #36253635
Кифирчик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Microbit/// у меня возникли "идейные" разногласия по структуре проектируемой БД с окружающими меня "специалистами". Поскольку к согласию мы не пришли, то ими была разработана "альтернативная" структура БД, в которой я увидел моменты, где идея нормализации, на мой взгляд, была доведена до абсурда.
Создайте базы с разными структурами, набейте их тестовыми данными, объёмом в реальный предполагаемый размер, лучше даже больше процентов на 25... и попробуйте запросы которые планируются... - отличный способ проверки "идей"...
что-то мне подсказывает, что после тестов, могут появиться аргументы в пользу дермонализации, особенно в моментах с номерами квартир )
...
Рейтинг: 0 / 0
Ещё более нелепый вопрос для опытных профессионалов
    #36253654
Microbit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
NafСколько я понял автора как раз нет, ссылаются не на квартиру, а на номер - то есть все квартиры во всех домах, всех улиц и т.д.
Да-да, именно так.

NafК автору: а какова предметная область БД?
Ну не вдаваясь в детали - "самая обычная":
Автоматизация бизнес процессов коммерческой организации. Организация обслуживает клиентов - физических лиц, выставляет им счета, оказывает им услуги, принимает оплаты. То есть такая "учетно-рассчетная" система.

alexeyvgКак это поможет "не ошибаться при вводе одинаковых имён и фамилий"??? Они хоть сказали? Или они ничего не говорят, бешенно вращают глазами и нормализуют, нормализуют... :-)
Ну говорят, что, типа, при вводе очередного Иванова, пользователю не надо будет заново набирать фамилии, а можно будеть выбрать из "справочника" по ссылке. Тем самым это не допустит возможность опечатки и введения скажем фамилии Ивынов :)
...
Рейтинг: 0 / 0
Ещё более нелепый вопрос для опытных профессионалов
    #36253706
Naf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Думал над этим, формально все верно, хотя идея об исключении ошибок не верна:
Ну хорошо не введут вручную Анток вместо Антон
Но реально появляется Анток, по привычке ищем в списке введенных находим Антон и полусознательно вводим
Думал насчет выиграша в размере, обычный запрос составил
Код: plaintext
1.
select count(distinct LastName)/count(LastName)
from Person
получил:
фамилии 0,9655172413793103448
имена 0,5402298850574712643
отчества 0,5172413793103448275
но не забываем про первичные индексы и внешние ключи, итог - по фамилиям точно в ауте
остальное тоже не далеко ушло, учитывая среднее имя 7 символов и отчество 10
про скорость тоже минус
С уважением, Naf
...
Рейтинг: 0 / 0
Ещё более нелепый вопрос для опытных профессионалов
    #36253731
Garrick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Microbit
Ну говорят, что, типа, при вводе очередного Иванова, пользователю не надо будет заново набирать фамилии, а можно будеть выбрать из "справочника" по ссылке. Тем самым это не допустит возможность опечатки и введения скажем фамилии Ивынов :)
Полный бред! Это же не помешает пользователю вместо Иванова выбрать из справочника Сидорова. А если справочник очень большой - набрать руками быстрее будет, чем в нём найти. Поиск же по совпадению первых букв в справочнике приведёт к ещё большему количеству ошибок, так вместо Иванова часто будут выбирать какого-нибудь Иванцова. По-моему, это тупик.
...
Рейтинг: 0 / 0
Ещё более нелепый вопрос для опытных профессионалов
    #36253773
baracs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MicrobitalexeyvgКак это поможет "не ошибаться при вводе одинаковых имён и фамилий"??? Они хоть сказали? Или они ничего не говорят, бешенно вращают глазами и нормализуют, нормализуют... :-)
Ну говорят, что, типа, при вводе очередного Иванова, пользователю не надо будет заново набирать фамилии, а можно будеть выбрать из "справочника" по ссылке. Тем самым это не допустит возможность опечатки и введения скажем фамилии Ивынов :)
Ну, в прынципе, ведение справочников имен и фамилий иногда упрощает жизнь. Особенно, когда информацию в систему вводят девочки-пэтэушницы...
Т.е. идея не так уж абсурдна, как вам кажется.

А вот, ссылка на номера квартир и этажей по id... Даже не знаю что сказать...
Привязка к поэтажным планам не планируется?

MicrobitАвтоматизация бизнес процессов коммерческой организации. Организация обслуживает клиентов - физических лиц, выставляет им счета, оказывает им услуги, принимает оплаты. То есть такая "учетно-рассчетная" система.
Хм-хм... А площади помещений (комнат) в системе хранятся?
...
Рейтинг: 0 / 0
Ещё более нелепый вопрос для опытных профессионалов
    #36253782
Naf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я уже привел статистику, фамилии на 96.5% различные
С уважением, Naf
...
Рейтинг: 0 / 0
Ещё более нелепый вопрос для опытных профессионалов
    #36253801
baracs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GarrickПолный бред! Это же не помешает пользователю вместо Иванова выбрать из справочника Сидорова. А если справочник очень большой - набрать руками быстрее будет, чем в нём найти. Поиск же по совпадению первых букв в справочнике приведёт к ещё большему количеству ошибок, так вместо Иванова часто будут выбирать какого-нибудь Иванцова. По-моему, это тупик.
Это проблема не БД а интефейса. И это решаемо.
Не на 100% конечно, но грамотно сделанный интерфейс, при наличии системных справочников, позволяет существенно снизить процент ошибок.

Кстати, не Иванцова будут выбирать вместо Иванова, а наоборот
...
Рейтинг: 0 / 0
Ещё более нелепый вопрос для опытных профессионалов
    #36253814
baracs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nafя уже привел статистику, фамилии на 96.5% различные
Хде?
В смысле, по какой базе статистика?
...
Рейтинг: 0 / 0
Ещё более нелепый вопрос для опытных профессионалов
    #36253819
Naf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
baracsNafя уже привел статистику, фамилии на 96.5% различные
Хде?
В смысле, по какой базе статистика?по нашей группе компаний
...
Рейтинг: 0 / 0
Ещё более нелепый вопрос для опытных профессионалов
    #36253836
baracs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NafbaracsNafя уже привел статистику, фамилии на 96.5% различные
Хде?
В смысле, по какой базе статистика?по нашей группе компаний
Э-э-э... Ну, вы поняли

Если по БД квартирных телефонов Москвы, тогда еще куда ни шло...
...
Рейтинг: 0 / 0
Ещё более нелепый вопрос для опытных профессионалов
    #36253850
Naf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
baracsNafbaracsNafя уже привел статистику, фамилии на 96.5% различные
Хде?
В смысле, по какой базе статистика?по нашей группе компаний
Э-э-э... Ну, вы поняли

Если по БД квартирных телефонов Москвы, тогда еще куда ни шло...ну согласен, но что было под рукой
...
Рейтинг: 0 / 0
Ещё более нелепый вопрос для опытных профессионалов
    #36253874
Naf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да наверное при увеличении объема к бесконечности отношений имен и отчеств очень быстро устремится к нулю
С уважением, Naf
...
Рейтинг: 0 / 0
Ещё более нелепый вопрос для опытных профессионалов
    #36253890
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
baracsНу, в прынципе, ведение справочников имен и фамилий иногда упрощает жизнь. Особенно, когда информацию в систему вводят девочки-пэтэушницы...
Т.е. идея не так уж абсурдна, как вам кажется.Я считаю, что использование справочника с констрейном и недопущение ввода неправильных фамилий - это совершенно разные вещи.

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

А наличие сущности справочника фамилий с констрейном не запретит программе ввести неправильно фамилию в справочник и потом правильно запомнить ИД этой фамилии в поле значения фамилии в таблице.
...
Рейтинг: 0 / 0
Ещё более нелепый вопрос для опытных профессионалов
    #36253903
Naf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это...
а пол лица в отдельную таблицу не вынесен? с ссылкой на записи:
мужской
женский
не определился
другое

С уважением, Naf
...
Рейтинг: 0 / 0
Ещё более нелепый вопрос для опытных профессионалов
    #36253927
baracs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexeyvgА наличие сущности справочника фамилий с констрейном не запретит программе ввести неправильно фамилию в справочник и потом правильно запомнить ИД этой фамилии в поле значения фамилии в таблице.
А чтобы кто попало не правил системные справочники, существует разделение доступа пользователей к объектам БД...
...
Рейтинг: 0 / 0
Ещё более нелепый вопрос для опытных профессионалов
    #36253979
Microbit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
NafЭто...
а пол лица в отдельную таблицу не вынесен? с ссылкой на записи:
мужской
женский
не определился
другое

С уважением, Naf
Как в таких случаях говорится - "ты знал, ты знал" :D
На полном серьезе, вот сейчас смотрю на эту структуру - таблица _dic_sex .
2 поля: 1 - первичный ключ (причем int, видно с расчетом на то, что сексуальная революция продолжит развиваться бурными темпами и значения размером в байт может не хватить :) ), 2 - строковое значение.
Просто ссылка на эту таблицу не из таблицы людей, а из таблицы их удостоверений личности.
...
Рейтинг: 0 / 0
Ещё более нелепый вопрос для опытных профессионалов
    #36253986
Я
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Я
Гость
Предлагаю сделать справочник чисел. Ну шоб не ошибиться при вводе:)
...
Рейтинг: 0 / 0
Ещё более нелепый вопрос для опытных профессионалов
    #36254039
baracs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MicrobitПросто ссылка на эту таблицу не из таблицы людей, а из таблицы их удостоверений личности.
А что? Грамотно! Если ведется история смены документов...

"Учетно-рассчетная" система, говорите?
...
Рейтинг: 0 / 0
25 сообщений из 39, страница 1 из 2
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Ещё более нелепый вопрос для опытных профессионалов
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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