powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Достоины-ли БанковскиеАттрибуты выделения в отдельную таблицу
5 сообщений из 55, страница 3 из 3
Достоины-ли БанковскиеАттрибуты выделения в отдельную таблицу
    #35362909
Hey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей Васкецов
Архитектор любой системы должен предполагать, что будет с системой, если чуть-чуть колыхнуть предпосылки, на которых система построена. Ваша система не обладает достаточной гибкостью. К чему это приведет - пока сказать сложно, может быть потеряете клиента, если он будет настаивать на оформлении не по паспорту, может быть потребуется внести изменения и переписать функциональность и всякие отчеты. Я же предпочитаю сделать сразу правильно , чтобы потом не было мучительно больно.

вы-же сами написали "Если же ничего кроме реквизитов УЛ мне не надо, то достаточно просто текстового поля, где будет писаться наименование органа, выдавшего УЛ, в точном соответствии с тем, как оно написано в самом УЛ" . Почему-же если мне нужны только аттрибуты паспорта, то вписывать его в таблицу владельца неправильно ?
На самом деле хочу сказать, что вы с MasterZiv'ом меня безусловно убедили в необходимости выноса сущностей, спасибо вам, просто есть пара моментов, которые не дают спокойно спать. Если отделение милиции мне как таковое не нужно и его можно оставлять в таблице с паспортом, то почему если не нужен паспорт как таковой, то его нельзя оставить в таблице с владельцем ? Так, на всякий случай ? Только из-за пресловутой гибкости системы ?

Сергей Васкецов
Работать с составляющими адреса регистрации невозможно по определению. Вы путаете адрес (например, дома) как таковой и атрибут документа. Повторю еще раз. При изменении улицы адрес дома поменяется, а адрес, указанный в регистрации человека в этом доме - нет.

а вот давайте теперь колыхнем вашу систему - скажем заказчик теперь хочет знать, сколько у него иногородних клиентов (не такое-уж невероятное изменение в требованиях), а прописка у вас, по вашим словам, текстовое поле. Что вы будете делать ? Система-то негибкая получилась. По такой логике получается нужно вообще все сущности разделять. Даже пример MasterZiv'а про телефоны перестает работать - вдруг там клиент захочет теперь знать, из каких городов чаще выигрывают - придеться телефон таки бить на составляющие номера и уносить в другое место. Да и отделение милиции с кодом подразделения из паспорта можно вынести - тоже на всякий случай, ради гибкости.

474
Я про это и писал. Рад, что стало понятно.

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

474
Запись о получении аванса в системе - это отражение факта в реальном мире. Если одному и тому-же человеку выдали аванс дважды, что запрещено правилами - отрывать голову надо тому, кто выдал. Почему ему - потому что правила пишутся для людей, а не для компьютеров.

Внутри системы эти два человека - это один объект, но в срезах на конкретную дату у него могут быть разные значения атрибутов. Если в требованиях на систему было прописано соответвие правилам (то есть ограничение на выдачу аванса дважды), но реализовано не было - тогда дополнительно оторвать голову и программисту.

тогда спрошу по-другому: хорошо, в системе это один человек, реализовано правило о невыдаче аванса дважды - все замечательно.
По вашим словам "Вы в жизни себе представляете хоть один бумажный отчет в котором вместо ФИО - табельные номера?" в бумажных документах и на экране компьютера вашей системы человек идентифицируется ФИО + паспорт (внутри системы может быть также или введен суррогатный ключ). Кроме того, ФИО и паспорт показываються в соответствии с историей - если в апреле Иванова была Петровой, то на экране за апрель светиться именно Петрова. (кстати вы откуда вообще взяли такую дурацкую постановку задачи ? Никого не интересует, какое ФИО у нее было в апреле, если это не отделение милиции. И табельные номера с номерами клиентов к клиниках введены вовсе не для того, чтобы реализовывать такие требования - просто встречаются абсолютные тезки, и в отчетах для различения их пришлось-бы вбивать номера паспортов).
Все верно, я ничего вам не приписал ?
Так вот, бухгалтер хочет выдать аванс Ивановой (паспорт 45 3456), но система говорит, что этот человек уже получал аванс в этом месяце. Бухгалтер запрашивает отчет об авансах за этот месяц и конечно никакой Ивановой (паспорт 45 3456) там не находит, ибо она там еще была Петровой (паспорт 66 7890). Что теперь должна делать бухгалтер и кому будем отрывать голову ?
...
Рейтинг: 0 / 0
Достоины-ли БанковскиеАттрибуты выделения в отдельную таблицу
    #35363630
474
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
heyу вас интересная манера вести разговор - вы сами придумали изначально отсутствующее требование про ведение истории и строите на ней все ваши выводы. По сути, это вообще не относиться к разговору, ибо даже если-бы паспорт у меня был вынесен, то никакой истории изменений все равно-бы не велось и ваши примеры про Петрову/Иванову все-равно были-бы совершенно нерелевантны.
Я думал, что очевидным является, что реквизиты банков также меняются, как и атрибуты любых иных объектов. Извиняюсь, что не объяснил. Приведу пример тогда.

К примеру, многофилиальный банк (все филиалы в одном регионе) переходит на единый БИК и на единый корсчет. Эта ситуация не выдуманная, такое происходило в банке, где обслуживалась моя фирма. Банк остается тот же самый, но реквизиты изменились. Если вам понадобится распечатать для налоговой копию платежки по уплате налогов за позапрошлый год вы будете ее печатать с новыми реквизитами?

heyВсе верно, я ничего вам не приписал ?
За исключением того, что я не говорил об идентификации и о том, что для нее необходимо и достаточно ФИО + паспорт, да, верно.

hey
Так вот, бухгалтер хочет выдать аванс Ивановой (паспорт 45 3456), но система говорит, что этот человек уже получал аванс в этом месяце. Бухгалтер запрашивает отчет об авансах за этот месяц и конечно никакой Ивановой (паспорт 45 3456) там не находит, ибо она там еще была Петровой (паспорт 66 7890). Что теперь должна делать бухгалтер и кому будем отрывать голову ?
Отрывать программисту или аналитику (смотря кто писал ТЗ). Иными словами - если система в информационных сообщениях связанных с объектами, показывает пользователю только изменяемые атрибуты объектов - это ошибка реализации, пусть и не критическая. Наличие в системе таких сообщений потенциально увеличивает операционные риски при работе с системой.

Насчет дурацких требований.. Навскидку могу предположить, что кроме милиции (кстати, а что это за милиция? миграционная служба, например, - это милиция или нет?), в хранении изменяемых ФИО граждан заинтересованы как минимум средние и высшие учебные заведения, загсы, банки, страховые компании, налоговые органы (а из-за этого почти все налоговые агенты), службы ЖКХ, операторы фиксированной связи, и еще множество организаций, которые лень перечислять, если честно.
...
Рейтинг: 0 / 0
Достоины-ли БанковскиеАттрибуты выделения в отдельную таблицу
    #35366782
Фотография Сергей Васкецов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
heyПочему-же если мне нужны только аттрибуты паспорта, то вписывать его в таблицу владельца неправильно ?
Вы, видимо, запутались. Даже если интересуемая сущность атомарная и не предполагается ее делить, ссылаться на нее и прочее, если таких сущностей более одной, в одно поле их запихивать не стоит. В случае с паспортом необходимо только обосновать, что одним пасортом в любом случае не обойтись, как бы этого кому-то ни хотелось.

heyЕсли отделение милиции мне как таковое не нужно и его можно оставлять в таблице с паспортом, то почему если не нужен паспорт как таковой, то его нельзя оставить в таблице с владельцем ? Так, на всякий случай ? Только из-за пресловутой гибкости системы ?
У одного документа УЛ орган, выдавший этот документ, один, и не меняется в течение времени жизни документа. С отношением человек-паспорт все по другому.

heyа вот давайте теперь колыхнем вашу систему - скажем заказчик теперь хочет знать, сколько у него иногородних клиентов (не такое-уж невероятное изменение в требованиях), а прописка у вас, по вашим словам, текстовое поле. Что вы будете делать ?
Сделаю еще одно поле со ссылкой на регион проживания. Адрес любой регистрации (в паспорте или на отдельном бланке, о чем Вы, видимо, позабыли) - это исключительно атрибут документа (а не человека). При изменении наименования региона адрес проживания для целей такой аналитики, как Вы описали выше, должен измениться, а адрес, указанный в документе - не должен. То есть, подобные адреса - это разные сущности. Другой вопрос, что заполнить такую ссылку можно в первом приближении на основании информации из текстового адреса (то есть запросы типа update ... from ... where ... like ...). Если же требование знать откуда физик - на уровне пожелания, то подойдет простейший like, с большой вероятностью этого будет достаточно для ответа на вопрос вида "а много ли у нас иногородних"? То есть, реализация зависит от цели, зачем это надо, насколько строгий учет необходим.
...
Рейтинг: 0 / 0
Достоины-ли БанковскиеАттрибуты выделения в отдельную таблицу
    #35369846
Hey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
474
Я думал, что очевидным является, что реквизиты банков также меняются, как и атрибуты любых иных объектов. Извиняюсь, что не объяснил. Приведу пример тогда.

К примеру, многофилиальный банк (все филиалы в одном регионе) переходит на единый БИК и на единый корсчет. Эта ситуация не выдуманная, такое происходило в банке, где обслуживалась моя фирма. Банк остается тот же самый, но реквизиты изменились. Если вам понадобится распечатать для налоговой копию платежки по уплате налогов за позапрошлый год вы будете ее печатать с новыми реквизитами?

вы-уж все-таки определитесь, какой пример имеете ввиду, а то сначала говорите про авансы и бухгалтершу, а потом в качестве примера нужности ведения истории рассказываете про реквизиты платежки =)

474
Отрывать программисту или аналитику (смотря кто писал ТЗ). Иными словами - если система в информационных сообщениях связанных с объектами, показывает пользователю только изменяемые атрибуты объектов - это ошибка реализации, пусть и не критическая. Наличие в системе таких сообщений потенциально увеличивает операционные риски при работе с системой.

Насчет дурацких требований.. Навскидку могу предположить, что кроме милиции (кстати, а что это за милиция? миграционная служба, например, - это милиция или нет?), в хранении изменяемых ФИО граждан заинтересованы как минимум средние и высшие учебные заведения, загсы, банки, страховые компании, налоговые органы (а из-за этого почти все налоговые агенты), службы ЖКХ, операторы фиксированной связи, и еще множество организаций, которые лень перечислять, если честно.

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


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

так ведь паспорт у меня не в одном текстовом поле, а нескольких полях таблицы владельца

Сергей Васкецов
hey
Если отделение милиции мне как таковое не нужно и его можно оставлять в таблице с паспортом, то почему если не нужен паспорт как таковой, то его нельзя оставить в таблице с владельцем ? Так, на всякий случай ? Только из-за пресловутой гибкости системы ?

У одного документа УЛ орган, выдавший этот документ, один, и не меняется в течение времени жизни документа. С отношением человек-паспорт все по другому.

;) так все-таки почему этот самый паспорт, хоть он и меняется на протяжении жизни, нужно выделять ? Историю паспортов вести согласно бизнес-правилам не надо, нескольких паспортов тоже нету. Ну никак не возьму в толк - отделение милиции оставляем, а паспорт все равно выносим, хотя они с точки зрения логики одинакого достойны выноса/оставления

Сергей Васкецов
Сделаю еще одно поле со ссылкой на регион проживания. Адрес любой регистрации (в паспорте или на отдельном бланке, о чем Вы, видимо, позабыли) - это исключительно атрибут документа (а не человека). При изменении наименования региона адрес проживания для целей такой аналитики, как Вы описали выше, должен измениться, а адрес, указанный в документе - не должен. То есть, подобные адреса - это разные сущности. Другой вопрос, что заполнить такую ссылку можно в первом приближении на основании информации из текстового адреса (то есть запросы типа update ... from ... where ... like ...). Если же требование знать откуда физик - на уровне пожелания, то подойдет простейший like, с большой вероятностью этого будет достаточно для ответа на вопрос вида "а много ли у нас иногородних"? То есть, реализация зависит от цели, зачем это надо, насколько строгий учет необходим.

а зачем нам считать, что если вынести регионы (и заодно улицы и дома), то они прекращают быть аттрибутами паспорта ? Если регион (город, улица) изменился, то мы его просто не будем менять, раз это аттрибут паспорта.
Like по очевидным причинам будет давать не самые точные результаты (да еще и не самые быстрые), а приделав дополнительные столбцы вы получается просто дублируете прописку (и множите потенциальные ошибки ввода).
Ведь вообще-то вопрос "а сколько у нас иногородних" или "сколько человек живет в этой части города" вовсе не означает, что ответ должен непременно содержать новое название улицы (или города итп), которое ей дали вчера. Да и кто будет поддерживать согласованное состояние такой информации ? Это-же по-сути никому не нужно, и даже более того, имхо куда очевиднее для пользователей ожидать от системы ответа, базирующегося именно на прописке, а не на реальном положении вещей.
Возможно есть какие-то исключения (какая-нибудь милиция или налоговики, хотя и то сомнительно), но для обычных бизнес-процессов это имхо не нужно совершенно точно.
...
Рейтинг: 0 / 0
Достоины-ли БанковскиеАттрибуты выделения в отдельную таблицу
    #35370205
Фотография Сергей Васкецов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
heyтак ведь паспорт у меня не в одном текстовом поле, а нескольких полях таблицы владельца
Диагноз подтвержден?

heyтак все-таки почему этот самый паспорт, хоть он и меняется на протяжении жизни, нужно выделять ? Историю паспортов вести согласно бизнес-правилам не надо, нескольких паспортов тоже нету
Это очень наивные бизнес-правила, отсюда и необходимость выделять УЛ отдельно.

heyНу никак не возьму в толк - отделение милиции оставляем, а паспорт все равно выносим, хотя они с точки зрения логики одинакого достойны выноса/оставления
Нет, не одинаково. Паспорт - атрибут гражданина. Адрес регистрации - атрибут паспорта - атрибут атрибута гражданина.

heyа зачем нам считать, что если вынести регионы (и заодно улицы и дома), то они прекращают быть аттрибутами паспорта?
Зачем внуки не вписываются в паспорт бабушек и дедушек?

heyа приделав дополнительные столбцы вы получается просто дублируете прописку (и множите потенциальные ошибки ввода).
Ничего подобного. Очевидные примеры - временная регистрация, проживание без регистрации вообще.

heyВедь вообще-то вопрос "а сколько у нас иногородних" или "сколько человек живет в этой части города" вовсе не означает, что ответ должен непременно содержать новое название улицы (или города итп), которое ей дали вчера
Но когда Химки присоединят к Москве, или Мск объединят с МО, ничего не должно перевернуться с ног на голову. Причем независимо от того, все еще Вы будете делать эту систему, или кто-то другой.

heyДа и кто будет поддерживать согласованное состояние такой информации? Это-же по-сути никому не нужно
Именно что задача неадекватная.

heyкуда очевиднее для пользователей ожидать от системы ответа, базирующегося именно на прописке, а не на реальном положении вещей
Пример такой задачи можете привести? Я знаю, что такой анализ (по фактическим данным пользователей) проводится в том числе, когда хочется создать новый дешевый филиан в другом городе. А вот реально анализировать именно прописку для коммерческой конторы - вообще не пойму зачем.

heyВозможно есть какие-то исключения (какая-нибудь милиция или налоговики, хотя и то сомнительно), но для обычных бизнес-процессов это имхо не нужно совершенно точно.
И я о том же, только с моей колокольни все как раз наоборот.
...
Рейтинг: 0 / 0
5 сообщений из 55, страница 3 из 3
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Достоины-ли БанковскиеАттрибуты выделения в отдельную таблицу
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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