|
|
|
История изменений и ErWin
|
|||
|---|---|---|---|
|
#18+
Попытаюсь сформулировать вопрос. Извиняюсь за пространность. Есть подход, сформулированный аналитиками на картинке в виде кропа логической модели erwin (см.) То есть, статические атрибуты Персоны принадлежат непосредственно сущности Персона, динамические вынесены в отдельные исторические таблицы с датами начала и конца периода актуальности. (Вопрос о том, что статические атрибуты Персоны, представленные на картинке, на самом деле не статические, пока не обсуждается, хотя и закономерен). Причем для атрибута Гражданство (вернее там 2 атрибута - Вид Гражданства и Страна) заведена отдельная историческая сущность, для ФИО+ИНН - отдельная. И так далее. А вот у сущности Связь с документами (1:M) история ведется прямо внутри. Соответственно на исторические записи по их UID-у могут ссылаться другие неисторические сущности. Например, Медкарта ссылается на историческую запись Персоны, дабы всегда можно было достать ФИО Персоны на тот момент времени на который она была заведена. У меня вопрос о разумности такого подхода в физической модели (да и в логической в общем, тоже), то есть когда "историчность" жестко вшита в модель, существуют ссылки между сущностями историческая-неисторическая, историческая-историческая; при этом для сущности, скажем, Персона, заводятся несколько исторических сущностей (по одному атрибуту или по группе) с интервалами актуальности. Схема, конечно, выглядит достаточно гладкой, но мне кажется - слишком много от решения "в лоб", настораживает количество операций соединения для получения информации о персоне, предполагаемая скорость каких-нибудь отчетов и т.п. Второй вариант известен - хранить в Персоне ВСЕ атрибуты, а в ОДНОЙ исторической сущности снимать слепки записей из Персоны. Мне он кажется более разумным. Но меня больше интересует именно подход с хранением ссылок на исторические сущности - насколько он разумен. Есть и третий вариант: одна сущность, для нее - одна историческая таблица-копия, в модели не указываемая вообще (но будет сгенерирована так как у сущности указан параметр UDP: IsHistorical). А ссылки хранятся "стандартным образом" - не на исторические, а на обычные сущности (Медкарта указывает на Персону) и только при построении запроса от клиента определяется что пользователь хочет вывести историческую запись, после чего делается соединение с Историей Персоны с учетом попадания в интервал дат. В общем, последний вопрос такой - должны ли в логмодели (или в физмодели) ErWin отображаться исторические сущности-копии (а связи их с другими сущностями фактически продублируются) или они должны подразумеваться (и генерироваться), но оставаться за кадром. Спасибо за внимание. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2006, 16:40 |
|
||
|
История изменений и ErWin
|
|||
|---|---|---|---|
|
#18+
ИМХО оба два имеют право быть в одной модели, ибо обслуживают разные ситуации. Разумеется можно попытаться их (ситуации) максмально унифицировать ко второму (ссылки только на сущность) случаю как более простому. Однако первый вариант жестко ограничивает удаление исторических записей и имеет поэтому самостоятельную ценность. Запросы же наверняка потребуются разные, даже при явной ссылке на историческую запись может потребоваться джойн по некоторой дате медкарты с данными истории персоны. Третий суть условность модели. Если бы еще erwin умел красить сущности по их UDP...:). По гражданству . Это само по себе М:М, так что историю имеет вид гражданства: Страна+Персона+Дата -> Вид. При этом пара Страна+Персона сама по себе не обладает значимыми атрибутами. Я бы изобразил на модели это понятие, но не стал бы генерировать таблицу, пометив сущность Страна+Персона как только логическую. Для корретного переноса ссылок использовал идентифицирующие связи к Страна и Персона. Связь с документами (1:M) . Не ясно, что значит "история ведется прямо внутри"? не видно нам истории. Например, у документа будет продлен срок действия. Если имеется ввиду, что будет создана там же запись с новым UID Документа, то как понять, что это две записи про один документ? Последнее. В логической модели с суррогатными ключами крайне важно указать альтернативные бизнес-ключи. Успехов! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2006, 18:43 |
|
||
|
История изменений и ErWin
|
|||
|---|---|---|---|
|
#18+
> У меня вопрос о разумности такого подхода в физической модели Реализация истории изменений данных без реализации истории изменений метаданных - есть упрощенная реализация. Нужно по крайней мере видеть техническое задание, чтобы сказать, во-первых, насколько эта упрощенная реализация ему соответствует, во-вторых, как именно должна регистрироваться история изменений, в-третьих, как она должна быть отражена в модели (моделях) проекта. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2006, 19:45 |
|
||
|
История изменений и ErWin
|
|||
|---|---|---|---|
|
#18+
guest_20040621> У меня вопрос о разумности такого подхода в физической модели Реализация истории изменений данных без реализации истории изменений метаданных - есть упрощенная реализация. Нужно по крайней мере видеть техническое задание, чтобы сказать, во-первых, насколько эта упрощенная реализация ему соответствует, во-вторых, как именно должна регистрироваться история изменений, в-третьих, как она должна быть отражена в модели (моделях) проекта. Действительно, система основана на ядре с метаданными. Действительно, история изменения метаданных "заложена но потом отложена", что упрощает реализацию. С "видеть ТЗ" сейчас проблематично, историю сейчас видно только в первой редакции логической модели, в документах она упомянута пока что не слишком. Однако этой упрощенной реализации, видимо, вполне достаточно, история ведется лишь по нескольким необходимым сущностям, малоподверженным структурным изменениям. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.07.2006, 10:33 |
|
||
|
История изменений и ErWin
|
|||
|---|---|---|---|
|
#18+
ModelRИМХО оба два имеют право быть в одной модели, ибо обслуживают разные ситуации. Разумеется можно попытаться их (ситуации) максмально унифицировать ко второму (ссылки только на сущность) случаю как более простому. Однако первый вариант жестко ограничивает удаление исторических записей и имеет поэтому самостоятельную ценность. Запросы же наверняка потребуются разные, даже при явной ссылке на историческую запись может потребоваться джойн по некоторой дате медкарты с данными истории персоны. Действительно, здесь заложено некое "упрощение". Ориентация на разовый запрос с выводом данных Персоны на момент создания медкарты. Но если нужно вывести, скажем, всю цепочку изменений данных персоны с момента создания - уже сложнее. Разумеется можно попытаться их (ситуации) максмально унифицировать ко второму (ссылки только на сущность) случаю как более простому. Вот и хочется знать, насколько этот второй вариант "распространен". На самом деле, в приведенном варианте подсознательно ощущаются скрытые проблемы, которые могут проявиться, но пока их все сложно выявить. По гражданству . Это само по себе М:М, так что историю имеет вид гражданства: Страна+Персона+Дата -> Вид. При этом пара Страна+Персона сама по себе не обладает значимыми атрибутами. Я бы изобразил на модели это понятие, но не стал бы генерировать таблицу, пометив сущность Страна+Персона как только логическую. Для корретного переноса ссылок использовал идентифицирующие связи к Страна и Персона. Правильно заметили, но с гражданством кстати здесь принята упрощенная модель, то есть Вид гражданства (росс., иностр., двойн...) плюс Страна в случае наличие граджанства иностранного государства. Связь с документами (1:M) . Не ясно, что значит "история ведется прямо внутри"? не видно нам истории. Например, у документа будет продлен срок действия. Если имеется ввиду, что будет создана там же запись с новым UID Документа, то как понять, что это две записи про один документ? Хм, верно, похоже, надо было другую сущность в пример... Последнее. В логической модели с суррогатными ключами крайне важно указать альтернативные бизнес-ключи. Оно понятно. Или Вы имеете в виду цветом в ErWin ? p.s. Я почему еще пытаюсь всего этого избежать - наше метаядро (создано в процессе работы над предыдущим проектом) под такие исторические структуры пока не заточено, а использовать его хотелось бы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.07.2006, 10:45 |
|
||
|
История изменений и ErWin
|
|||
|---|---|---|---|
|
#18+
А фамилия - то в модели может с течением времени изменяться :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.07.2006, 11:18 |
|
||
|
История изменений и ErWin
|
|||
|---|---|---|---|
|
#18+
hamanuВот и хочется знать, насколько этот второй вариант "распространен". На самом деле, в приведенном варианте подсознательно ощущаются скрытые проблемы, которые могут проявиться, но пока их все сложно выявить. Появляется больше возможных комбинаций. Например медкарта от 15-го сслылается на запись от 07-го, хотя есть более свежая запись от 10-го. Нужно это или нет - Вам виднее. hamanu Правильно заметили, но с гражданством кстати здесь принята упрощенная модель, то есть Вид гражданства (росс., иностр., двойн...) плюс Страна в случае наличие граджанства иностранного государства.Что за вид двойное? Количество иностранных гражданств вроде не ограничено. hamanu Последнее. В логической модели с суррогатными ключами крайне важно указать альтернативные бизнес-ключи. Оно понятно. Или Вы имеете в виду цветом в ErWin ?Нет, ErWin может показывать альтернативные ключи как и первичные у атрибута в скобках. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.07.2006, 11:39 |
|
||
|
История изменений и ErWin
|
|||
|---|---|---|---|
|
#18+
WesttrdА фамилия - то в модели может с течением времени изменяться :) И не только фамилия ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.07.2006, 12:04 |
|
||
|
История изменений и ErWin
|
|||
|---|---|---|---|
|
#18+
Последнее. В логической модели с суррогатными ключами крайне важно указать альтернативные бизнес-ключи. Оно понятно. Или Вы имеете в виду цветом в ErWin ?[/quot]Нет, ErWin может показывать альтернативные ключи как и первичные у атрибута в скобках.[/quot] Действительно, они пока не заданы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.07.2006, 12:08 |
|
||
|
История изменений и ErWin
|
|||
|---|---|---|---|
|
#18+
> история изменения метаданных "заложена но потом отложена" Есть два основных подхода к реализации истории изменений: 1. основанный на данных и 2. основанный на метаданных. Они вообще ничем не похожи, кроме созвучного названия. Если Вы говорите, что сейчас планируется реализовать 1., то переход к 2. потребует полного переписывания кода. Принципиальная разница между этими подходами в том, что в 1. структура данных предполагается неизменной (точнее не так: однажды описанные сущности неизменны; никто не мешает добавлять описания новых сущностей), в 2. таких требований нет. Если аналитик Вашего проекта полагает, что описываемые сущности неизменны, - это его решение. ;) Я бы воздержался от таких допущений. > С "видеть ТЗ" сейчас проблематично ОК, тогда остаются исключительно практические соображения: количество дополнительных данных, соответствие схеме ограничения доступа, скорость обработки истории изменений и пр., т. е. тестирование приложения с двумя разными вариантами реализации структуры данных с тестовым набором данных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.07.2006, 14:00 |
|
||
|
История изменений и ErWin
|
|||
|---|---|---|---|
|
#18+
guest_20040621> история изменения метаданных "заложена но потом отложена" Есть два основных подхода к реализации истории изменений: 1. основанный на данных и 2. основанный на метаданных. Они вообще ничем не похожи, кроме созвучного названия. Если Вы говорите, что сейчас планируется реализовать 1., то переход к 2. потребует полного переписывания кода. Принципиальная разница между этими подходами в том, что в 1. структура данных предполагается неизменной (точнее не так: однажды описанные сущности неизменны; никто не мешает добавлять описания новых сущностей), в 2. таких требований нет. Если аналитик Вашего проекта полагает, что описываемые сущности неизменны, - это его решение. ;) Я бы воздержался от таких допущений. > С "видеть ТЗ" сейчас проблематично ОК, тогда остаются исключительно практические соображения: количество дополнительных данных, соответствие схеме ограничения доступа, скорость обработки истории изменений и пр., т. е. тестирование приложения с двумя разными вариантами реализации структуры данных с тестовым набором данных. Аналитик действительно считает структуру данных (тех, для которых хочет обеспечить историчность) неизменной ввиду ее неизменности в течение скольких-то там десятков лет. Другое дело, что наше ядро метаданных заточено под обработку как раз изменяющихся сущностей. Мы хотели бы его использовать, но для хранения полноценной истории действительно надо бы расширить его механизм с учетом вышесказанного. Это не очень просто. А основные проблемы приведенного в модели подхода видятся мне в области физической реализации (это может быть невысокая производительность на больших объемах), а также в невысоком уровне гибкости/вариативности в результате жесткого внедрения исторической подсхемы в модель, в некой неавтономности исторического механизма. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.07.2006, 15:30 |
|
||
|
История изменений и ErWin
|
|||
|---|---|---|---|
|
#18+
> Аналитик действительно считает Мне очень не хочется Вас расстраивать, но скорее всего аналитик ошибается. > Это не очень просто. Я знаю. ;) Здесь на самом деле две проблемы: 1. собственно метамодель (очень хочется иметь стандартную, причем, такую, которая бы поддерживала не только реляционные модели), 2. ее реализация (на самом деле, это принципиально важный выбор; реализация метамодели внешними средствами более проста, но при этом более сложен контроль за реляционной структурой данных, - даже не сам по себе, а в общем контексте (политика доступа, мультиязычность и пр.); т. е. есть еще как минимум один уровень метаданных, специфичных для приложения. > А основные проблемы Imho один вариант - тестировать. Для Ваших задач, для Вашей истории изменений, для Ваших объемов данных. С точки зрения реализации ни у одного из предложенных решений imho преимуществ нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.07.2006, 16:21 |
|
||
|
История изменений и ErWin
|
|||
|---|---|---|---|
|
#18+
А все же, у этой самой Персоны могут ли быть действительно неизменяемые атрибуты ? Например у нас предполагается при смене пола заводить другую Персону. Поэтому в частности Пол считается неизменным. Насколько это правильно ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2006, 11:42 |
|
||
|
История изменений и ErWin
|
|||
|---|---|---|---|
|
#18+
"Нельзя дважды войти в одну и ту же реку" "Чем больше все меняется, тем больше остается неизменным" выберите правильный вариант :) Все зависит от Вашего приложения. Смена пола влечет утрату имущественных прав? повышение в должности? расторжение брака? Что для вас важно? ИМХО можно считать тем же человеком. Если считать другим, все равно нужно старого и нового связать и в некоторых случаях по этой связи углубляться в историю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2006, 12:06 |
|
||
|
История изменений и ErWin
|
|||
|---|---|---|---|
|
#18+
ModelR"Нельзя дважды войти в одну и ту же реку" "Чем больше все меняется, тем больше остается неизменным" выберите правильный вариант :) Все зависит от Вашего приложения. Смена пола влечет утрату имущественных прав? повышение в должности? расторжение брака? Что для вас важно? ИМХО можно считать тем же человеком. Если считать другим, все равно нужно старого и нового связать и в некоторых случаях по этой связи углубляться в историю. Мне сложно представить реальную ситуацию, когда бы смена пола требовала создания новой персоны. Повышение в должности этого ИМХО не требует (приведено как быстрый пример, понимаю). А вот какое-нибудь членство в мужских клубах о котором персона со сменой пола хотела бы забыть - может быть. Впрочем и здесь соответствующие связи в таблицах при смене пола можно просто удалить ... Я бы подошел более прагматично - если после смены пола мы можем свести в одной комнате и поставить рядом две персоны - которые "до" и "после" - то да, нам таки удалось создать вторую персону (и запись в БД). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2006, 12:19 |
|
||
|
История изменений и ErWin
|
|||
|---|---|---|---|
|
#18+
hamanu ModelRИМХО можно считать тем же человеком. Я бы подошел более прагматично - если после смены пола мы можем свести в одной комнате и поставить рядом две персоны - которые "до" и "после" - то да, нам таки удалось создать вторую персону (и запись в БД).Да, хороший критерий. В пределе, Персона может не содержать ни одного (кроме ИД) атрибута. Все в истории. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2006, 12:36 |
|
||
|
История изменений и ErWin
|
|||
|---|---|---|---|
|
#18+
> А все же, у этой самой Персоны могут ли быть действительно неизменяемые > атрибуты ? Спросите у Вашего аналитика. ;) > Например у нас предполагается при смене пола ОК, давайте чуть подробнее о том, что есть смена пола и почему при этом новых персон не появляется. ;) Я не знаю, что Вы проектируете, но предположу: под полом Вы подразумеваете просто запись в документе, удостоверяющем личность (паспорте). Что есть пол в его естественном смысле? Совокупность признаков, характеризующих определенного представителя определенного биологического вида. Смена пола предполагает изменение очень незначительной части этих признаков. Собственно, откуда взяться новой персоне? ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2006, 13:23 |
|
||
|
История изменений и ErWin
|
|||
|---|---|---|---|
|
#18+
hamanu Я бы подошел более прагматично - если после смены пола мы можем свести в одной комнате и поставить рядом две персоны - которые "до" и "после" - то да, нам таки удалось создать вторую персону (и запись в БД). Я бы подошел еще более прагматично, если в системе нужен отчет "Когда и как часто данное лицо меняло пол" то конечно необходимо данный атрибут записывать в историю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2006, 13:31 |
|
||
|
История изменений и ErWin
|
|||
|---|---|---|---|
|
#18+
EstetsЯ бы подошел еще более прагматично, если в системе нужен отчет "Когда и как часто данное лицо меняло пол" то конечно необходимо данный атрибут записывать в историю.А если не нужен? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2006, 14:53 |
|
||
|
История изменений и ErWin
|
|||
|---|---|---|---|
|
#18+
guest_20040621> Я не знаю, что Вы проектируете, но предположу: под полом Вы подразумеваете просто запись в документе, удостоверяющем личность (паспорте). Что есть пол в его естественном смысле? Совокупность признаков, характеризующих определенного представителя определенного биологического вида. Смена пола предполагает изменение очень незначительной части этих признаков. Собственно, откуда взяться новой персоне? ;) Медицинская система. Пол - с одной стороны простая характеристика человека, или запись в медкарте. Но есть таблицы с границами нормы параметров при обследованиях по возрастнополовым группам. Отчеты также могут учитывать возрастнополовые группы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2006, 10:31 |
|
||
|
История изменений и ErWin
|
|||
|---|---|---|---|
|
#18+
> Медицинская система. Интересно. Надеюсь, что-нибудь локальное, не национального масштаба? ;) > Пол - с одной стороны простая характеристика человека, или запись в медкарте. Эта карта имеет стандартную форму? > Но есть таблицы с границами нормы параметров при обследованиях по > возрастнополовым группам. Это интересно. Вероятно, для любого человека можно выделить некий естественный идентификатор личности (типа генетического набора или что-то в этом роде). Регистрировать его нет необходимости, важно отметить, что он существует. Операция по смене пола (как и любое другое хирургическое вмешательство) imho не подразумевает изменение этого естественного идентификатора. Однако, некоторые признаки (например, гормональный фон и зависящие от него) будут меняться. Я не видел технического задания, но если правильно понял задачу, то сделал бы примерно так: группа формальных идентификаторов (страна, группа); здесь же можно описать биометрические идентификаторы; группа биологических идентификаторов, здесь пол описывается в контексте репродуктивной роли и функции (т. е. будет и роль, и функция; здесь же можно описать причины состояния репродуктивной функции); формальные идентификаторы персоны; матрица биологических параметров персоны (биологические идентификаторы, возраст, контекст репродуктивной роли и функции); нормативные параметры (аналогично); значения биологических параметров персоны (биологические идентификаторы, контекст, возраст, персона). Вообще говоря, по-видимому, не только состояние репродуктивной функции может влиять на значения биологических параметров, - ничто не мешает описать другие признаки. Хронология изменений - для всех сущностей. Ссылки на стандарты и нормативные документы - для всех сущностей. Мог что-то упустить, но в первом приближении где-то так. Основная идея - выделить группы разных идентификаторов и построить соответствующие функциональные зависимости. Подойдет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2006, 15:08 |
|
||
|
История изменений и ErWin
|
|||
|---|---|---|---|
|
#18+
Чуть подробнее о других параметрах. Можно вообще не рассматривать репродуктивную функцию отдельно, а выделить основные системы организма человека, связать их с МКБ10 и строить ограничения с учетом их (систем) состояния. Нужно только добавить список состояний (общий для всех систем) и параметров для каждой из систем. Убивается два зайца: свободные ограничения + возможность связи с другими модулями системы (в т. ч. с назначениями и пр.). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2006, 18:45 |
|
||
|
История изменений и ErWin
|
|||
|---|---|---|---|
|
#18+
ModelR EstetsЯ бы подошел еще более прагматично, если в системе нужен отчет "Когда и как часто данное лицо меняло пол" то конечно необходимо данный атрибут записывать в историю.А если не нужен? То не записывал бы. Лениво. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.07.2006, 12:48 |
|
||
|
История изменений и ErWin
|
|||
|---|---|---|---|
|
#18+
Не изменна дата и место рождения - собственно как правило так принятно идентифицировать людей во многих госучреждениях ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2006, 14:50 |
|
||
|
История изменений и ErWin
|
|||
|---|---|---|---|
|
#18+
> Не изменна дата и место рождения В каких документах, кроме свидетельства о рождении, это отражено? > собственно как правило так принятно Кем принято? Примеры? Нормативные документы? > идентифицировать людей во многих госучреждениях Назвали родители однополых близнецов одинаково - и всю Вашу идентификацию Вы смело можете засунуть себе в... ну, Вы поняли. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2006, 17:27 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=33847520&tid=1545147]: |
0ms |
get settings: |
6ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
395ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
61ms |
get tp. blocked users: |
2ms |
| others: | 196ms |
| total: | 692ms |

| 0 / 0 |
