|
|
|
Достоины-ли БанковскиеАттрибуты выделения в отдельную таблицу
|
|||
|---|---|---|---|
|
#18+
Кроме проверки правильности БИК неплохо еще проверять, не является ли кредитная организация в стадии ликвидации. А то плакали Ваши денежки).Эта информация тоже есть в bnkseek.dbf от ЦБ. И еще неплохо бы проверять правильность корреспондентского и расчетного счетов по ключу. ничто не слишком! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2008, 15:13 |
|
||
|
Достоины-ли БанковскиеАттрибуты выделения в отдельную таблицу
|
|||
|---|---|---|---|
|
#18+
Если можно, то еще один вопрос - а стоит-ли выделять в отдельную таблицу например паспорт у Клиента ? Ведь не бывает 2 человек с одинаковым номером паспорта, т.е. он гаранированно уникален. Вроде нет смысла выделять, но все-таки он ведь тоже отдельная сущность ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2008, 16:23 |
|
||
|
Достоины-ли БанковскиеАттрибуты выделения в отдельную таблицу
|
|||
|---|---|---|---|
|
#18+
heyЕсли можно, то еще один вопрос - а стоит-ли выделять в отдельную таблицу например паспорт у Клиента ? Ведь не бывает 2 человек с одинаковым номером паспорта, т.е. он гаранированно уникален. Вроде нет смысла выделять, но все-таки он ведь тоже отдельная сущность ... Стоит выделять. Для документов, удостоверяющих личность. Там же будет и паспорт. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2008, 16:26 |
|
||
|
Достоины-ли БанковскиеАттрибуты выделения в отдельную таблицу
|
|||
|---|---|---|---|
|
#18+
Сергей Васкецов Стоит выделять. Для документов, удостоверяющих личность. Там же будет и паспорт. но вопрос-то в том, почему? Ведь паспорт будет внесен только один раз, следовательно дублирования информации не будет. Вопрос можно обобщить - нужно-ли выделять сущности, которые очевидно являются самостоятельными сущностями со своими аттрибутами, но в то-же время больше нигде не дублируются. Ну скажем описание характеристик винчестера у сущности Компьютер. Сами по-себе характеристики характеризуют именно винчестер, а не компьютер, но с другой - какая именно польза может быть от их выноса в другую таблицу ? Ведь вполне могут себе лежать и в таблице с компьютером ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2008, 17:05 |
|
||
|
Достоины-ли БанковскиеАттрибуты выделения в отдельную таблицу
|
|||
|---|---|---|---|
|
#18+
heyВедь паспорт будет внесен только один раз Это неверно. heyНу скажем описание характеристик винчестера у сущности Компьютер. Сами по-себе характеристики характеризуют именно винчестер, а не компьютер, но с другой - какая именно польза может быть от их выноса в другую таблицу ? Ведь вполне могут себе лежать и в таблице с компьютером ... Перенесли винт на другой комп, например. Или заменили на новый. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2008, 17:09 |
|
||
|
Достоины-ли БанковскиеАттрибуты выделения в отдельную таблицу
|
|||
|---|---|---|---|
|
#18+
heyВедь паспорт будет внесен только один разлюди, бывает, меняют паспорта heyНу скажем описание характеристик винчестера у сущности Компьютер. Сами по-себе характеристики характеризуют именно винчестер, а не компьютер, но с другой - какая именно польза может быть от их выноса в другую таблицу ? Ведь вполне могут себе лежать и в таблице с компьютером ... а у меня в компе 2 винта, а в сервере - 7 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2008, 17:16 |
|
||
|
Достоины-ли БанковскиеАттрибуты выделения в отдельную таблицу
|
|||
|---|---|---|---|
|
#18+
Сергей Васкецов Это неверно. где вы хотите заносить его еще раз ? Сергей Васкецов Перенесли винт на другой комп, например. Или заменили на новый. так и поменяли данные прямо в таблице Компьютер. egorych люди, бывает, меняют паспорта данные о паспорте тоже можно поменять прямо в таблице Клиент. egorych а у меня в компе 2 винта, а в сервере - 7 это меняет постановку исходной задачи :) Так все-таки, в чем собственно выгода выноса ? Только в том, что в каждой таблице будет только одна сущность ? Из каких правил нормализации это следует ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2008, 19:08 |
|
||
|
Достоины-ли БанковскиеАттрибуты выделения в отдельную таблицу
|
|||
|---|---|---|---|
|
#18+
hey пишет: > Если можно, то еще один вопрос - а стоит-ли выделять в отдельную таблицу > например паспорт у Клиента ? Ведь не бывает 2 человек с одинаковым > номером паспорта, т.е. он гаранированно уникален. Ты веришь в сказки, оказывается ? Вроде нет смысла > выделять, но все-таки он ведь тоже отдельная сущность ... Паспортов у человека может быть много (несмотря на все старания милиции). Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2008, 20:28 |
|
||
|
Достоины-ли БанковскиеАттрибуты выделения в отдельную таблицу
|
|||
|---|---|---|---|
|
#18+
hey пишет: > Так все-таки, в чем собственно выгода выноса ? Только в том, что в > каждой таблице будет только одна сущность ? Из каких правил нормализации > это следует ? 1 НФ. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2008, 20:30 |
|
||
|
Достоины-ли БанковскиеАттрибуты выделения в отдельную таблицу
|
|||
|---|---|---|---|
|
#18+
hey пишет: > люди, бывает, меняют паспорта > > > данные о паспорте тоже можно поменять прямо в таблице Клиент. Если ты обработаешь у себя в системе верно ситуацию, когда, например, человек получил деньги под отчет по одному паспорту, сдал их, потом получил по другому и сдал, и тебе надо напечатать два этих авансовых отчета одновременно (и правильно), то тогда действительно все в порядке. Ты можешь менять прямо в таблице. И не делать доп. таблицу для паспортов. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2008, 20:33 |
|
||
|
Достоины-ли БанковскиеАттрибуты выделения в отдельную таблицу
|
|||
|---|---|---|---|
|
#18+
MasterZiv Паспортов у человека может быть много (несмотря на все старания милиции). ... Если ты обработаешь у себя в системе верно ситуацию, когда, например, человек получил деньги под отчет по одному паспорту, сдал их, потом получил по другому и сдал, и тебе надо напечатать два этих авансовых отчета одновременно (и правильно), то тогда действительно все в порядке. Ты можешь менять прямо в таблице. И не делать доп. таблицу для паспортов. ситуацию, когда есть несколько паспортов или винчестеров мы не обсуждаем - там все ясно, интересует именно если сущность одна. Например строго один паспорт или винчестер. Если хотите другой пример - характеристики двигателя автомобиля. Уж он-то в машине точно один Уносим характеристики двигателя в отдельную таблицу, или оставляем в таблице Автомобиль ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2008, 22:07 |
|
||
|
Достоины-ли БанковскиеАттрибуты выделения в отдельную таблицу
|
|||
|---|---|---|---|
|
#18+
hey пишет: > Если хотите другой пример - характеристики двигателя автомобиля. Уж > он-то в машине точно один Уносим характеристики двигателя в отдельную > таблицу, или оставляем в таблице Автомобиль ? Любая нормализация строится на понятии "функциональная зависимость". Функциональная зависимость определяется предметной областью и постановкой задачи. Для одной задачи МОЖНО характеристики двигателя приписать автомобилю. Для ДРУГОЙ - нельзя. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2008, 23:54 |
|
||
|
Достоины-ли БанковскиеАттрибуты выделения в отдельную таблицу
|
|||
|---|---|---|---|
|
#18+
авторЕсли хотите другой пример - характеристики двигателя автомобиля. Уж он-то в машине точно один Уносим характеристики двигателя в отдельную таблицу, или оставляем в таблице Автомобиль ? А подумать ? Хечбэк 1.4 скока-то цилиндров, клапанов и др. характеристики Хечбэк 1.6 характеристики двигателя Седан 1.4 характеристики двигателя Седан 1.6 характеристики двигателя Универсал 1.6 характеристики двигателя ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2008, 08:27 |
|
||
|
Достоины-ли БанковскиеАттрибуты выделения в отдельную таблицу
|
|||
|---|---|---|---|
|
#18+
hey ситуацию, когда есть несколько паспортов или винчестеров мы не обсуждаем - там все ясно, интересует именно если сущность одна. Например строго один паспорт или винчестер. Хм. Сегодня Иванова получила аванс по паспорту, о чем сделана запись в журнал выдачи авансов. Завтра Иванова вышла замуж, взяла фамилию Петрова. Через неделю получила новый паспорт, в БД поменяли ей карточку, а затем снова взяла аванс, о чем снова сделана запись в журнале. Еще через неделю бухгалтер распечатала журнал авансов, и о ужас - в реестре две записи о выдаче аванса Петровой, а согласно информации из кадров, по штату в копании на дату первой записи никакой Петровой не было! Паспорт у нее был и есть один. А отчет неверный. Кому отрывать голову? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2008, 10:33 |
|
||
|
Достоины-ли БанковскиеАттрибуты выделения в отдельную таблицу
|
|||
|---|---|---|---|
|
#18+
MasterZiv Любая нормализация строится на понятии "функциональная зависимость". Функциональная зависимость определяется предметной областью и постановкой задачи. Для одной задачи МОЖНО характеристики двигателя приписать автомобилю. Для ДРУГОЙ - нельзя. а можно привести пример, когда это можно, а когда нет ? А то что-то непонятно, то говорят, что согласно правилам нормализации нужно выносить в отдельную таблицу, то говорят что можно оставлять :) 474 Хм. Сегодня Иванова получила аванс по паспорту, о чем сделана запись в журнал выдачи авансов. Завтра Иванова вышла замуж, взяла фамилию Петрова. Через неделю получила новый паспорт, в БД поменяли ей карточку, а затем снова взяла аванс, о чем снова сделана запись в журнале. Еще через неделю бухгалтер распечатала журнал авансов, и о ужас - в реестре две записи о выдаче аванса Петровой, а согласно информации из кадров, по штату в копании на дату первой записи никакой Петровой не было! Паспорт у нее был и есть один. А отчет неверный. Кому отрывать голову? в компаниях сотрудники обычно получают уникальные табельные номера, и все завязано именно на них, а не на ФИО и паспорта. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2008, 11:01 |
|
||
|
Достоины-ли БанковскиеАттрибуты выделения в отдельную таблицу
|
|||
|---|---|---|---|
|
#18+
heyв компаниях сотрудники обычно получают уникальные табельные номера, и все завязано именно на них, а не на ФИО и паспорта. Вы в жизни себе представляете хоть один бумажный отчет в котором вместо ФИО - табельные номера? Что произойдет скорее - руководитель подпишет такой отчет, или выгонит программиста, который его написал? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2008, 11:06 |
|
||
|
Достоины-ли БанковскиеАттрибуты выделения в отдельную таблицу
|
|||
|---|---|---|---|
|
#18+
474 heyв компаниях сотрудники обычно получают уникальные табельные номера, и все завязано именно на них, а не на ФИО и паспорта. Вы в жизни себе представляете хоть один бумажный отчет в котором вместо ФИО - табельные номера? Что произойдет скорее - руководитель подпишет такой отчет, или выгонит программиста, который его написал? А чего мы все этого hey в чем-то убеждаем? Примеров приведено достаточно, а он все не внемлет... Может, пусть себе голову сломит где-нибудь, и, тогда уже задумается? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2008, 19:54 |
|
||
|
Достоины-ли БанковскиеАттрибуты выделения в отдельную таблицу
|
|||
|---|---|---|---|
|
#18+
hey пишет: > а можно привести пример, когда это можно, а когда нет ? А то что-то > непонятно, то говорят, что согласно правилам нормализации нужно выносить > в отдельную таблицу, то говорят что можно оставлять :) Говорят вам и правильно, и неправильно. Чтобы сказать, что верно в вашем случае, надо как минимум изучить вашу постановку задачи. Этого никто естественно не делал, поэтому их советы в общем очень среднепотолочны, хотя возможно и дают вам какие-то сигнальчики что у вас может что -то не так. Примеры может и не придумаю сейчас так вот сходу. а, не, вспомнил. примеры на "самое святое" - нарушение 1НФ. Напомню, что требование 1НФ - это атомарность всех атрибутов отношения (таблицы), т.е. наличие одного и только одного значения в каждом поле. Пример первый, пусть это будет БД оператора телефонной связи. Наверное не надо долго убеждать всех, что с точки зрения телефонии телефонный номер - далеко не атомарное значение, состоящие из 7 (или скольки-то там) цифр. А это - код страны, код города или региона (или оператора) и затем код абонента. К этому могут добавиться еще номера внутренних телефонов, и еще фиг знает что. В общем случае тел. номер с этой точки зрения - это форма записи порой достаточно сложного АЛГОРИТМА установки соединения, с переключениями форм набора номеров, прослушиванием пауз или гудков (несущей) и т.п. Возможно я тут конечно напорол чушь, я не телефонист, но идея должна быть ясна. Второй пример - база данных какой-нибудь online-игры по телевидению или радио, как напр. клевер-клуб на нашем радио (спец. маленькими буквами, не реклама ), где должны храниться имя и номер телефона человека, приславшего ответ. Ну, знаете, как пишут или говорят, что "вот тут правильный ответ прислали Вова 23455 и Наташа 23145", при этом часто полный телефон не приводится. В этом случае телефон и имя даже можно хранить в одном поле, поскольку это даже и не телефон вовсе, а способ идентификации человека, приславшего ответ или что там присылают. И, поскольку никаких операций в БД с этим телефоном производится не будет, кроме хранения и выдачи на куда-то там, мы имеем полное право этот телефон упростить до тупого поля, содержащего N цифр, и даже сконкатенировать его с именем пославшего. Несмотря на кажущуюся безграмотность и нарушение 1НФ, его здесь НЕТ, потому что никакая из операций БД (и приложения, с ней работающего) не будет выполнять никаких операций с отдельными элементами этого поля. Тут может кто-то подумает "а как же нам позвонить и отдать приз выигравшему человеку ?" Это (полный телефон) можно хранить в другом поле, или, например, вообще не хранить - будет оправдание не вручать приз . вообще не хранить. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2008, 01:49 |
|
||
|
Достоины-ли БанковскиеАттрибуты выделения в отдельную таблицу
|
|||
|---|---|---|---|
|
#18+
hey Сергей ВаскецовЭто неверно.где вы хотите заносить его еще раз ? Там же, в ту же таблицу. hey Сергей ВаскецовПеренесли винт на другой комп, например. Или заменили на новый.так и поменяли данные прямо в таблице Компьютер. Угу, дважды сделали работу (в старом компе и в новом), вместо переноса именно девайса. Атрибуты должны быть у той сущности, чьими атрибутами они являются. Если это не так, должны быть крайне существенные основания, я даже не готов с ходу придумать их сейчас для Вас. hey egorychлюди, бывает, меняют паспортаданные о паспорте тоже можно поменять прямо в таблице Клиент. Можно, но не всегда. Для паспортов есть срок действия. Кроме того, паспорт - просто некоторый тип удостоверения личности, местами весьма специфический, но тем не менее УЛ. Надо исходить из таблицы с удостоверениями личности физика, а не лепить просто паспорт. Существует не так много действий, для которых требуется именно паспорт, а не свидетельство о рождении, или загранпаспорт, или права, или студенческий билет, или военный билет. Все они могут использоваться как удостоверения личности. Поэтому надо изначально исходить из правильной постановки, потому что "паспорт в таблице Клиент" - это исключительно дальнейшее развитие ошибки, что паспорт - единственное УЛ и не меняется. heyЕсли хотите другой пример - характеристики двигателя автомобиля. Уж он-то в машине точно один Это, кстати, тоже неверно, например, для гибридных автомобилей или троллейбусов с двойной силовой установкой (питание от сети и от аккумуляторов). У одной машины (одного экземпляра) может быть более одного двигателя. А также параметры даже одного двигателя могут отличаться в зависимости от используемого топлива и режима движения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2008, 11:45 |
|
||
|
Достоины-ли БанковскиеАттрибуты выделения в отдельную таблицу
|
|||
|---|---|---|---|
|
#18+
474 Вы в жизни себе представляете хоть один бумажный отчет в котором вместо ФИО - табельные номера? Что произойдет скорее - руководитель подпишет такой отчет, или выгонит программиста, который его написал? вы сами-то вообще поняли, что написали ? Какое отношение отчеты имеют к способу организации данных ? Еще раз - обычно сотрудники компаний получают уникальные номера, или например в медицинских клиниках каждый больной имеет свой номер (часто называемый номером карточки). Именно этот номер уникально идентифицирует человека. И аванс будет соответственно выдан работнику с табельным № 2365, а не Петровой, которая потом стала Ивановой и получила новый паспорт. А вы как я понял, вместо этого предлагаете хранить все паспорта, который были у человека А какие данные включать в конкретный отчет имеет мало отношения к обсуждению. MasterZiv Пример первый, пусть это будет БД оператора телефонной связи. это да, хороший пример. Из него следует, что если никто не работает с некоторой сущностью отдельно, то ее можно оставлять в таблице с сущностью-владельцем, а если работает - то выносится в отдельное место ? Про пример с тем-же паспортом - если я нигде не работаю с ним отдельно, и он везде "прицеплен" к клиенту - то можно оставить в таблице с клиентами, если-же хочу например вести историю изменений паспортов, или например сам по-себе паспорт важная сущность (например для паспортного стола, где они отвечают за прием заявлений на него и их выдачу) - то уношу в другую таблицу ? Сергей Васкецов Там же, в ту же таблицу. в смысле ? У каждого человека паспорт уникален, как вы его еще раз внесете ? Сергей Васкецов Угу, дважды сделали работу (в старом компе и в новом), вместо переноса именно девайса. точно, об этом я не подумал. Сергей Васкецов Можно, но не всегда. Для паспортов есть срок действия. Кроме того, паспорт - просто некоторый тип удостоверения личности, местами весьма специфический, но тем не менее УЛ. Надо исходить из таблицы с удостоверениями личности физика, а не лепить просто паспорт. Существует не так много действий, для которых требуется именно паспорт, а не свидетельство о рождении, или загранпаспорт, или права, или студенческий билет, или военный билет. Все они могут использоваться как удостоверения личности. Поэтому надо изначально исходить из правильной постановки, потому что "паспорт в таблице Клиент" - это исключительно дальнейшее развитие ошибки, что паспорт - единственное УЛ и не меняется. вроде как это зависит от специфики бизнеса. Например вряд-ли вам в банке откроют счет по водительским правам, а по военному билету вы совершенно точно вы пересечете границу. Соответственно зачем там предусматривать различные варианты удостоверений ? Имхо, как раз не так уж много ситуаций, когда годяться разные варианты УЛ. Сергей Васкецов Атрибуты должны быть у той сущности, чьими атрибутами они являются. Если это не так, должны быть крайне существенные основания, я даже не готов с ходу придумать их сейчас для Вас. кстати возник интересный вопрос по этому поводу. В том-же паспорте имеется поле КемВыдан, представляющее отделение милиции и его КодПодразделения. Что-то я не думаю, что вы будете выносить подразделение милиции и кодом в отдельное место :) Или будете ? Ведь отдельная сущность получается :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2008, 19:23 |
|
||
|
Достоины-ли БанковскиеАттрибуты выделения в отдельную таблицу
|
|||
|---|---|---|---|
|
#18+
hey 474 Вы в жизни себе представляете хоть один бумажный отчет в котором вместо ФИО - табельные номера? Что произойдет скорее - руководитель подпишет такой отчет, или выгонит программиста, который его написал? вы сами-то вообще поняли, что написали ? Какое отношение отчеты имеют к способу организации данных ? Еще раз - обычно сотрудники компаний получают уникальные номера, или например в медицинских клиниках каждый больной имеет свой номер (часто называемый номером карточки). Именно этот номер уникально идентифицирует человека. И аванс будет соответственно выдан работнику с табельным № 2365, а не Петровой, которая потом стала Ивановой и получила новый паспорт. А вы как я понял, вместо этого предлагаете хранить все паспорта, который были у человека А какие данные включать в конкретный отчет имеет мало отношения к обсуждению. Я понял, а вот вы, похоже нет. Если вы не храните изменяемые атрибуты отдельно, то вам рано или поздно придется столкнуться с ситуацией, когда атрибут объекта (сотрудника, к примеру) поменяется, а поскольку он у вас хранится один только раз и история не ведется (негде ее вести, раз нет отдельной таблицы), то всюду в вашей системе у вас будет новое значение вместо старого. Была Иванова, стала Петрова. И при необходимости вывести срез данных на какую-то дату вы столкнетесь с искажением данных. Теперь понятно вам понятно как ответить на ваш же вопрос "Какое отношение отчеты имеют к способу организации данных"? Если непонятно, то я отвечу - отчеты строятся на основе данных. Если данных нет или они искажены - правильный отчет вы не получите. Об идентификации объектов речь внутри системы я вообще не вел, не приписывайте мне собственных домыслов. То что внутри системы используются ключи сущностей, и для системы Иванова это, к примеру, id100 - понятно даже школьникам. Просто сегодня для пользователя системы id100 это Иванова, а через месяц id100 - это Петрова. В вашей реализации (все хранить в одной сущности и изменять ее атрибуты напрямую) в системе и следа о том, что id100 когда-то была Ивановой не останется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2008, 09:25 |
|
||
|
Достоины-ли БанковскиеАттрибуты выделения в отдельную таблицу
|
|||
|---|---|---|---|
|
#18+
heyв смысле ? У каждого человека паспорт уникален, как вы его еще раз внесете ? Вы делаете неверный вывод об уникальности паспорта у каждого человека из предпосылки, что у каждого человека в один момент времени может быть только один действующий граджанский паспорт. heyНапример вряд-ли вам в банке откроют счет по водительским правам В банк могут быть предоставлены более одного документа УЛ, например, паспорт и водительские права, или паспорт и загранпаспорт. Это может влиять на набор документов, например, необходимый для получения кредита. heyпо военному билету вы совершенно точно вы пересечете границу Я так понимаю, Вы хотели написать "не пересечете". Обрадую. В соответствующем законе описаны 3 документа кроме ЗП, которые могут его (ЗП) заменять. При пересечении границы военными подразделениями вообще особый порядок действует. heyСоответственно зачем там предусматривать различные варианты удостоверений? Вы либо слушаете, что Вам говорят, если неспроста решили написать, либо игнорируете все ответы. heyИмхо, как раз не так уж много ситуаций, когда годяться разные варианты УЛ Как раз с точностью до наоборот. heyВ том-же паспорте имеется поле КемВыдан, представляющее отделение милиции и его КодПодразделения. Что-то я не думаю, что вы будете выносить подразделение милиции и кодом в отдельное место Если отделения милиции как таковые мне интересны, например, я их контролирую и надзираю за ними, то безусловно "да". Если же ничего кроме реквизитов УЛ мне не надо, то достаточно просто текстового поля, где будет писаться наименование органа, выдавшего УЛ, в точном соответствии с тем, как оно написано в самом УЛ на момент его выдачи. Например, считаете ли Вы, что после смены наименования региона (область -> край) у всех, кому в этом регионе выдавали паспорта, в паспортах резко сменился орган, который выдавал этот документ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2008, 11:37 |
|
||
|
Достоины-ли БанковскиеАттрибуты выделения в отдельную таблицу
|
|||
|---|---|---|---|
|
#18+
474 Я понял, а вот вы, похоже нет. Если вы не храните изменяемые атрибуты отдельно, то вам рано или поздно придется столкнуться с ситуацией, когда атрибут объекта (сотрудника, к примеру) поменяется, а поскольку он у вас хранится один только раз и история не ведется (негде ее вести, раз нет отдельной таблицы), то всюду в вашей системе у вас будет новое значение вместо старого. Была Иванова, стала Петрова. И при необходимости вывести срез данных на какую-то дату вы столкнетесь с искажением данных. Теперь понятно вам понятно как ответить на ваш же вопрос "Какое отношение отчеты имеют к способу организации данных"? Если непонятно, то я отвечу - отчеты строятся на основе данных. Если данных нет или они искажены - правильный отчет вы не получите. Об идентификации объектов речь внутри системы я вообще не вел, не приписывайте мне собственных домыслов. То что внутри системы используются ключи сущностей, и для системы Иванова это, к примеру, id100 - понятно даже школьникам. Просто сегодня для пользователя системы id100 это Иванова, а через месяц id100 - это Петрова. В вашей реализации (все хранить в одной сущности и изменять ее атрибуты напрямую) в системе и следа о том, что id100 когда-то была Ивановой не останется. о майн гот. Табельный номер и карточка в клинике - это не просто внутренний номер системы, а вполне общеизвестный аттрибут. Если вы придете/позвоните в клинику, то вас первым делом попросят назвать свой номер, а если не помните - то только тогда будут искать по имени/фамилии/дате рождения. Табельный номер сотрудников тоже обычно присутствует на куче бумажных документов - от зарплатных списков до каких-нибудь отчетов или справок. А у нас на фирме например он еще и является логином пользователя на вход в систему. Если-же требуется вести историю - то конечно сущность лучше вынести. Ответьте мне пожалуйста на следующий вопрос: при вашем способе реализации человек идентифицируется ФИО + паспорт. Судя по вашим словам "Еще через неделю бухгалтер распечатала журнал авансов, и о ужас - в реестре две записи о выдаче аванса Петровой, а согласно информации из кадров, по штату в копании на дату первой записи никакой Петровой не было! Паспорт у нее был и есть один. А отчет неверный. Кому отрывать голову?" у вас в системе будет следующая ситуация - две записи о выдачи аванса, одна из них про Петрову, другая про Иванову с другим паспортом. Таким образом один и тот-же человек (хотя по отчету кажется, что они разные) получил аванс дважды, что предположим, запрещено правилами компании. Кому теперь будем отрывать голову ? Сергей Васкецов Как раз с точностью до наоборот. хорошо, давайте не будем об этом спорить - ну много так много. У нас разговор немного отклонился от интересующей меня темы - что делать с сущностью, характеризующей другую сущность. Вот делаю я предположим систему, где клиенты имеют только один документ - паспорт, который согласно бизнес-правилам может быть только один, и изменения этих бизнес-правил пока не предвидеться. Сергей Васкецов Если отделения милиции как таковые мне интересны, например, я их контролирую и надзираю за ними, то безусловно "да". Если же ничего кроме реквизитов УЛ мне не надо, то достаточно просто текстового поля, где будет писаться наименование органа, выдавшего УЛ, в точном соответствии с тем, как оно написано в самом УЛ на момент его выдачи. это похоже на вышеприведенный пример MasterZiv'а про телефоны - если телефон это просто аттрибут, с которым отдельно не работаем, то оставляем в таблице с владельцем, если нет - то выносим. Отсюда вытекает такой момент, что (по аналогии с КемВыдан и его кодом подразделения) если я с паспортом нигде отдельно не работаю, то можно оставлять в таблице владельца ? Если так, то все встает на свои места. Сергей Васкецов Например, считаете ли Вы, что после смены наименования региона (область -> край) у всех, кому в этом регионе выдавали паспорта, в паспортах резко сменился орган, который выдавал этот документ? Не знаю, вряд-ли, ведь у меня в паспорте например местом рождения числится Свердловск, хотя это теперь Екатеринбург. Кстати, а вот вы будете разбивать поле Прописка на составляющие ? Имхо та-же история - хотим работать с ее составляющими - выносим, не хотим - вписываем в одно текстовое поле ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2008, 17:09 |
|
||
|
Достоины-ли БанковскиеАттрибуты выделения в отдельную таблицу
|
|||
|---|---|---|---|
|
#18+
heyВот делаю я предположим систему, где клиенты имеют только один документ - паспорт, который согласно бизнес-правилам может быть только один, и изменения этих бизнес-правил пока не предвидеться Архитектор любой системы должен предполагать, что будет с системой, если чуть-чуть колыхнуть предпосылки, на которых система построена. Ваша система не обладает достаточной гибкостью. К чему это приведет - пока сказать сложно, может быть потеряете клиента, если он будет настаивать на оформлении не по паспорту, может быть потребуется внести изменения и переписать функциональность и всякие отчеты. Я же предпочитаю сделать сразу правильно, чтобы потом не было мучительно больно. heyКстати, а вот вы будете разбивать поле Прописка на составляющие ? Имхо та-же история - хотим работать с ее составляющими - выносим, не хотим - вписываем в одно текстовое поле ... Работать с составляющими адреса регистрации невозможно по определению. Вы путаете адрес (например, дома) как таковой и атрибут документа. Повторю еще раз. При изменении улицы адрес дома поменяется, а адрес, указанный в регистрации человека в этом доме - нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2008, 17:29 |
|
||
|
Достоины-ли БанковскиеАттрибуты выделения в отдельную таблицу
|
|||
|---|---|---|---|
|
#18+
heyЕсли-же требуется вести историю - то конечно сущность лучше вынести. Я про это и писал. Рад, что стало понятно. heyОтветьте мне пожалуйста на следующий вопрос: при вашем способе реализации человек идентифицируется ФИО + паспорт. Я второй раз повторю: я не говорил о идентификации, я говорил и говорю о хранении атрибутов. Вы опять приписываете мне то, чего я не утверждал. Идентифицировать объект в системе можно как угодно, по естественным ключам или по суррогатным - это как вы хотите. hey Судя по вашим словам "Еще через неделю бухгалтер распечатала журнал авансов, и о ужас - в реестре две записи о выдаче аванса Петровой, а согласно информации из кадров, по штату в копании на дату первой записи никакой Петровой не было! Паспорт у нее был и есть один. А отчет неверный. Кому отрывать голову?" у вас в системе будет следующая ситуация - две записи о выдачи аванса, одна из них про Петрову, другая про Иванову с другим паспортом. Таким образом один и тот-же человек (хотя по отчету кажется, что они разные) получил аванс дважды , что предположим, запрещено правилами компании. Кому теперь будем отрывать голову ? Запись о получении аванса в системе - это отражение факта в реальном мире. Если одному и тому-же человеку выдали аванс дважды, что запрещено правилами - отрывать голову надо тому, кто выдал. Почему ему - потому что правила пишутся для людей , а не для компьютеров. Внутри системы эти два человека - это один объект, но в срезах на конкретную дату у него могут быть разные значения атрибутов. Если в требованиях на систему было прописано соответвие правилам (то есть ограничение на выдачу аванса дважды), но реализовано не было - тогда дополнительно оторвать голову и программисту. Вам Сергей Васкецов правильно заметил, что надо предусматривать запас гибкости в системе, а вы почему-то все это избежать хотите. Дополнительный код не хочется писать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2008, 17:56 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=35356003&tid=1543822]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
145ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
37ms |
get tp. blocked users: |
1ms |
| others: | 232ms |
| total: | 449ms |

| 0 / 0 |
