|
|
|
Шаблоны применения
|
|||
|---|---|---|---|
|
#18+
Senya_LЯ тут говорил про смену фамилии потому, что интересно как это реализуют другие. Честно скажу, лень расписывать по шаблону автора топика, но идея такая. Код: plaintext 1. 2. 3. 4. 5. 6. 7. Если убрать сурогатный обвес, то останется Код: plaintext 1. 2. 3. 4. Т.е. таблица, состоящая из одного только первичного ключа. Такие таблицы как правило не нужны совсем. Да и не Person это на самом деле. Это скорее Person_ID, коих у реального человека может быть много (ФИО на национальном языке, девичья ФИО, ФИО в n'ом браке, ФИО в загранпаспорте МВД, ФИО в загранпаспорте МИД, ФИО в международном водительском удостоверении, ФИО в авиабилете билете (допускают три ошибки), ...). Если речь о том, чтобы длинным значениям (Surname, Name, Secname) присвоить короткие номера -Id (сделать типа словаря), то нужно просто запретить изменение Id и этих полей в таблице. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2008, 14:09 |
|
||
|
Шаблоны применения
|
|||
|---|---|---|---|
|
#18+
expla, Вы меня не поняли. Да и я был немногословен. :) Поясняю. В таблице сущность "Персона" не изменяется, а дополняется. Поле idPrevious содержит ссылку на Person.idPerson, где содержатся данные до смены фамилии/имени/(да можно и отчества:)). Зря вы idPrevous выкинули в "суррогатный" обвес. Что то наподобии древа, но на idPerson накладывается уникальный индекс и, в результате, получаем связанный список. Все "ипостаси" личности (не знаю я как назвать совокупность атрибутов имя/фамилия назвать) хранятся в таблице, вместе со ссылками на предыдущую. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2008, 16:40 |
|
||
|
Шаблоны применения
|
|||
|---|---|---|---|
|
#18+
триада ( Name, Surname, Secname ) не может быть первичным ключём, бывают, знаете-ли, полные тёзки ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2008, 17:02 |
|
||
|
Шаблоны применения
|
|||
|---|---|---|---|
|
#18+
Senya_L, я не вижу смысла выстраивать цепочки из ФИО, ведь чел может одновременно называть себя или проходить по документам и Ивановым и Петровым. ИМХО, должно быть личное дело человка (типа таблица) и к этой таблице прицеплены разные учётные данные, такие как многочисленные ФИО (старые, новые, в разных транслитерациях, подтверждённые документально или предполагаемые системой выявления мошенников и т.п.). Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. ФИО может содержать и другие данные, которые обычно используются в документах. ФИО может быть представлением (и материализованным), из разных документов, в которых фигурируют персональные данные и есть ссылка на личное дело. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2008, 17:31 |
|
||
|
Шаблоны применения
|
|||
|---|---|---|---|
|
#18+
egorychтриада ( Name, Surname, Secname ) не может быть первичным ключём, бывают, знаете-ли, полные тёзки Смотря в каком реляционном отношении. В таблице паспортов - согласен. В таблице/справочнике имён - почему бы нет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2008, 17:33 |
|
||
|
Шаблоны применения
|
|||
|---|---|---|---|
|
#18+
explaSenya_L, я не вижу смысла выстраивать цепочки из ФИО, ведь чел может одновременно называть себя или проходить по документам и Ивановым и Петровым.Одновременно человек не может называть себя двумя фамилиями. Равно как и иметь разные паспорта. Зато он может в различные промежутки времени обладать, например, правом подписи и как Иванов, и как Петров. Конечно, не считая случая загранпаспорта, где может быть те же фамилия/имя, но латиницей. С таким случаем дела не имел и, имхо, его надо рассматривать как особый. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2008, 17:47 |
|
||
|
Шаблоны применения
|
|||
|---|---|---|---|
|
#18+
Senya_LexplaSenya_L, я не вижу смысла выстраивать цепочки из ФИО, ведь чел может одновременно называть себя или проходить по документам и Ивановым и Петровым.Одновременно человек не может называть себя двумя фамилиями. Ты плохо знаешь людей. А серьёзно, смена фамилии процедура сложная и длительная. И система некоторое время должна принимать человека и с его старой фамилией и с новой, а в архивных документах старая фамилия может отаться навеки. Может быть ты пытаешься притянуть сюда жизненный цикл паспорта. Типа, старый паспорт изымают, новый выдают. Но даже в этом случае чел может потерять паспорт, потом найти его и нелегально пользоваться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2008, 18:24 |
|
||
|
Шаблоны применения
|
|||
|---|---|---|---|
|
#18+
Senya_Lгде может быть те же фамилия/имя, но латиницей. С таким случаем дела не имел и, имхо, его надо рассматривать как особый. пример, кстати, любопытный - правила написания имен латиницей не совпадают с обычными правилами прочтения фамилии на иностранных языках - это особая нотация - здравым смыслом не берется, фамилии при прочтении бывают даже не созвучны т.е. можно сказать что это те же фамили и имя того же человека, только вот и визуально и аудиально они могут не совпадать ни разу... арабские, французские, русские имена и фамилии примеры приводить не стану - попалюсь пулей ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2008, 18:59 |
|
||
|
Шаблоны применения
|
|||
|---|---|---|---|
|
#18+
имелось в виду "в загран.паспортах и визах зарубежных иноязычных стран" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2008, 19:00 |
|
||
|
Шаблоны применения
|
|||
|---|---|---|---|
|
#18+
explaМожет быть ты пытаешься притянуть сюда жизненный цикл паспорта. Не то что притянуть, а именно в соответствии с паспортом и должен фигурировать человек в документах, либо на основании документа его заменяющего. Случай мошеничества не рассматривается. Вообще, что мы к этим паспортам привязались, в самом деле. Давайте на вопрос смотреть ширше :) Допустим, назовем шаблон "Сущности с изменяемыми атрибутами". Это могут данные о руководителе отдела, это цены на проданные товары, это ... список можно продолжать долго. Но всех их объединяет то, что при выборке важно знать состояние сущности на определенный интервал времени. Сразу же укажу альтернативный способ решения: лог изменений. Мне лично больше нравится вышеуказанный подход. Однако, могу указать и слабые места. Во-первых, можно получить значительное падение производительности в случае когда атрибуты изменяются очень часто. Во-вторых, на СУБД, где операции с курсором "дороги" есть вероятность "тормозов", когда не получается уложиться в один запрос. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2008, 19:23 |
|
||
|
Шаблоны применения
|
|||
|---|---|---|---|
|
#18+
NafДанный шаблон может применяться, например, для курсов валют или цен товаров.Кстати, хотелось бы покритиковать этот шаблон. В нем трудно организовать CONSTRAINT на непересекаемость интервалов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2008, 19:31 |
|
||
|
Шаблоны применения
|
|||
|---|---|---|---|
|
#18+
Senya_LexplaМожет быть ты пытаешься притянуть сюда жизненный цикл паспорта. Не то что притянуть, а именно в соответствии с паспортом и должен фигурировать человек в документах, либо на основании документа его заменяющего. Это твои фантазии. Документы могли быть составлены хрен знает когда, так что ни паспорта ни документа его заменяющего, который использовался при составлениии документов, уже не существует в природе. Senya_L Случай мошеничества не рассматривается. Напрасно. Тогда система не жизненная будет. Сферический конь в вакууме. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2008, 20:23 |
|
||
|
Шаблоны применения
|
|||
|---|---|---|---|
|
#18+
Senya_LNafДанный шаблон может применяться, например, для курсов валют или цен товаров.Кстати, хотелось бы покритиковать этот шаблон. В нем трудно организовать CONSTRAINT на непересекаемость интервалов. Да он вообще то не рабочий. В контексте триггера OnAfterInsert функция DimensionSlice(new.Point, new.<Измерения>) на оракле будет поднимать исключение, типа таблица мутирует. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2008, 20:26 |
|
||
|
Шаблоны применения
|
|||
|---|---|---|---|
|
#18+
explaДа он вообще то не рабочий. В контексте триггера OnAfterInsert функция DimensionSlice(new.Point, new.<Измерения>) на оракле будет поднимать исключение, типа таблица мутирует. Да что вы чУдите бесплатно! Автор привел образец врменного "среза" в SELECT'е, а не пример использования в Оракле. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2008, 09:10 |
|
||
|
Шаблоны применения
|
|||
|---|---|---|---|
|
#18+
Senya_L, Да избыточность имеет место. Ограничения с помощью триггеров. Запросы на изменения не должны на прямую содержать значения EndPeriod. Можно привести реализацию этого же шаблона без избыточности. Конец периода - начало следующего. Но Select там гораздо сложнее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2008, 09:19 |
|
||
|
Шаблоны применения
|
|||
|---|---|---|---|
|
#18+
NafSenya_L, Да избыточность имеет место. Ограничения с помощью триггеров. Запросы на изменения не должны на прямую содержать значения EndPeriod. Можно привести реализацию этого же шаблона без избыточности. Конец периода - начало следующего. Но Select там гораздо сложнее.Не совсем избыточность. Я тут подумал, все же EndPeriod нужен, если периоды не стыкуются и есть "разрывы". NafНо Select там гораздо сложнее.В случае, например, изменения цен на товар ни капли не сложней. В заказе будет содержаться ссылка на ID правильной записи, и дальше - просто, чисто конкретный, JOIN :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2008, 09:42 |
|
||
|
Шаблоны применения
|
|||
|---|---|---|---|
|
#18+
NafSenya_L, Да избыточность имеет место. Ограничения с помощью триггеров. Запросы на изменения не должны на прямую содержать значения EndPeriod. Можно привести реализацию этого же шаблона без избыточности. Конец периода - начало следующего. Но Select там гораздо сложнее. Нет там избыточности. Интервал, это два значения - начало и конец. То, что начало интервала может быть концом какого то другого интервала, это уже правило, внешнее по отношению к БД. Т.е. в случае хранения в записи начала и конца избыточным является это правило. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2008, 16:54 |
|
||
|
Шаблоны применения
|
|||
|---|---|---|---|
|
#18+
Senya_LexplaДа он вообще то не рабочий. В контексте триггера OnAfterInsert функция DimensionSlice(new.Point, new.<Измерения>) на оракле будет поднимать исключение, типа таблица мутирует. Да что вы чУдите бесплатно! Автор привел образец врменного "среза" в SELECT'е, а не пример использования в Оракле. Тогда пусть автор потрудится объяснить, что такое OnAfterInsert. И нафига такой шаблон, который неприменим к ораклу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2008, 16:56 |
|
||
|
Шаблоны применения
|
|||
|---|---|---|---|
|
#18+
Здравствуйте! К. Дж. Дейт "Введение в системы баз данных" ISBN 5-8459-0788-8 (рус.) Стараницы 915 - 970. Это не подходит? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.12.2008, 00:38 |
|
||
|
Шаблоны применения
|
|||
|---|---|---|---|
|
#18+
В AlData GOLD (собственно от AlData) и SAP for Retail (приезжали из Alpe consulting) используется именно этот механизм. Все действующие сейчас атрибуты обладают кроме даты начала еще и датой окончания. По умолчанию 2054г. Как происходит изменение, то Дата окончания обновляется указанной датой и создается новая запись с Датой начала = НашаДата и Дата окончания = 2054 г. З.Ы. Для тех кто не в теме - это, типа, лучшие мировые решения в розничной торговле. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2009, 14:16 |
|
||
|
Шаблоны применения
|
|||
|---|---|---|---|
|
#18+
SalimbekВ AlData GOLD (собственно от AlData) и SAP for Retail (приезжали из Alpe consulting) используется именно этот механизм. Все действующие сейчас атрибуты обладают кроме даты начала еще и датой окончания. По умолчанию 2054г. Как происходит изменение, то Дата окончания обновляется указанной датой и создается новая запись с Датой начала = НашаДата и Дата окончания = 2054 г. З.Ы. Для тех кто не в теме - это, типа, лучшие мировые решения в розничной торговле.А в каком виде хранятся атрибуты? Это самое интересное. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2009, 14:26 |
|
||
|
Шаблоны применения
|
|||
|---|---|---|---|
|
#18+
Umberto_EcoА в каком виде хранятся атрибуты? Это самое интересное. К сожалению это были лишь презентации, детально пощщупать базы не удалось. Тут есть более детальные комментарии: http://www.1cpp.ru/forum/YaBB.pl?num=1223470922/1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2009, 15:38 |
|
||
|
Шаблоны применения
|
|||
|---|---|---|---|
|
#18+
> Для тех кто не в теме - это, типа, лучшие мировые решения в розничной торговле. Обычное дерьмо. Эпитет "лучший" применим исключительно к технологии вытрясания бабла из клиента. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2009, 16:05 |
|
||
|
Шаблоны применения
|
|||
|---|---|---|---|
|
#18+
guest_20040621> Для тех кто не в теме - это, типа, лучшие мировые решения в розничной торговле. Обычное дерьмо. Эпитет "лучший" применим исключительно к технологии вытрясания бабла из клиента. Ну, список внедрений внушаит, например у АлДата: Carrefour - France and International, Retail, Grocery Casino - France and International, Retail, Grocery Leclerc Lecasud - France, Retail, Grocery Migros - Switzerland, France and Germany, Retail, Grocery and Non-Food Tesco - Central Europe, Retail, Grocery Это из тех сетей, которые в 20-ку лучших в мире входят ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2009, 16:39 |
|
||
|
Шаблоны применения
|
|||
|---|---|---|---|
|
#18+
> Это из тех сетей, которые в 20-ку лучших в мире входят Т. е. таких, из которых есть смысл вытрясать бабло, ибо оно у них есть. Логично. Связь между технологичностью, правильностью решения и степенью его распространения скорее обратная: чем более тупо и криво, тем охотнее покупают и используют. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2009, 17:09 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=35703511&tid=1540392]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
72ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
62ms |
get tp. blocked users: |
1ms |
| others: | 251ms |
| total: | 423ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...