|
|
|
Двузначное отношение. Посоветуйте структуру таблиц
|
|||
|---|---|---|---|
|
#18+
Задача такая: документы вступают между собой в отношения (заменяют, отменяют, дополняют друг друга и т.д.). Первоначальное решение – 3 таблицы ДОКУМЕНТЫ - номер документа - и т.д. ТИПЫ ОТНОШЕНИЙ ДОКУМЕНТОВ - номер отношения документов - название (замена, дополнение, отмена) - и т.д. ОТНОШЕНИЯ ДОКУМЕНТОВ - код отношения документов - код "младшего" документа (замененный, дополненный, отмененный) - код "старшего" документа (заменяющий, дополняющий, отменяющий) - и т.д. Предполагалось, что GUI выглядеть будет примерно так: Отношение Документ Статус Документ Статус Дополнение Док Младший Док1 Старший (Т.е. Док1 дополняет Док или Док дополнен Док1, как угодно) Но народ хочет видеть так: "Док1 дополняет Док" или "Док дополнен Док1" Варианты действий: 1. В таблицу ТИПЫ ОТНОШЕНИЙ ДОКУМЕНТОВ вносить не одну запись, обозначающую тип отношений документов, а две. Но тогда при внесении в ОТНОШЕНИЯ ДОКУМЕНТОВ надо будет вносить 2 записи с кодами "дополняет" и "дополнен" (денормализация?). Зато легко будет искать документы, состоящие в определенном отношении. 2. В таблицу ТИПЫ ОТНОШЕНИЙ ДОКУМЕНТОВ внести еще 2 поля для старшей и младшей семантических конструкций исходного типа 3. Самый изящный. Синтаксическое преобразование исходного типа в зависимости от того, какой статус имеет выбранный документ, но я так не умею. Посоветуйте, пожалуйста. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.03.2008, 17:35 |
|
||
|
Двузначное отношение. Посоветуйте структуру таблиц
|
|||
|---|---|---|---|
|
#18+
Если ответить просто - то в данном слкчае дублирование нужно вводить как раз наоборот для симметричных отношений. Если Документ1 дополняет Документ0. То это несимметричное отношение. Если хотите серьезней - должна быть разработана алгебра документов. Например для отношение дополняет Документ1:0 = дополняет (Документ1, Документ0) должно быть обратное отношение дополнен Документ1:0 = дополненн (Документ0, Документ1) Или же Документ0 = отменятет(Документ0, Документ1) и отменяет (Документ1, Документ2) = восстанавливает (Документ0. Документ2) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.03.2008, 22:31 |
|
||
|
Двузначное отношение. Посоветуйте структуру таблиц
|
|||
|---|---|---|---|
|
#18+
Номер 2 и не мучайтесь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2008, 09:20 |
|
||
|
Двузначное отношение. Посоветуйте структуру таблиц
|
|||
|---|---|---|---|
|
#18+
КД У меня есть некоторые сомнения в том, что я правильно понял все изложенное, но есть ощущение, что правилен номер 2. Посмотрите, как рисуются связи в любой ER-ке: для каждого конца связи задается обозначение этого конца (дополняет-дополнен в вашем случае). Именно это Вам и нужно; учитывая специфику, я придумывал бы что-нибудь типа Активная формаПассивная форма%1:s дополняет %0:s%0:s дополнен %1:s ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2008, 11:40 |
|
||
|
Двузначное отношение. Посоветуйте структуру таблиц
|
|||
|---|---|---|---|
|
#18+
Всем спасибо! 2 apapacy То, что описанное мной – несимметричные отношения, это ясно. Я вот как раз и спрашивал как мне эти отношения спроектировать с учетом особенных пожеланий их отображения. А где тут алгебра? 2 softwarer Да, по-моему, Вы все правильно поняли. Так что просто по статусу старшинства выбранного документа в данном отношении берем либо одну либо вторую семантические формы и прилепляем второй документ из этой пары. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2008, 19:11 |
|
||
|
Двузначное отношение. Посоветуйте структуру таблиц
|
|||
|---|---|---|---|
|
#18+
КДВсем спасибо! 2 apapacy То, что описанное мной – несимметричные отношения, это ясно. Я вот как раз и спрашивал как мне эти отношения спроектировать с учетом особенных пожеланий их отображения. А где тут алгебра? Согласен. С алгеброй загнул. Здесь идет речь скорее о кольце. Просто если операции несимметричные речь илет о существовании обратных операций. Например документ А изменяет документ Б и документ Б изменен документом А. Дальше операции с документами могут быть выстроены в цепочки Например Документ А изменен Документом Б с получением Документа А'. Теперь Документ С отменяет Документ Б - получаем из Документа А' Документ А. Ну то есть как бы мы определяем лперации над документами. И правила для этих операций. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2008, 22:40 |
|
||
|
Двузначное отношение. Посоветуйте структуру таблиц
|
|||
|---|---|---|---|
|
#18+
Боюсь, реализация всех правил, которые можно придумать, займет у меня остаток жизни. Обойдутся. Сделаю по минимуму: чтобы нельзя было для документа дважды загнать одно и тоже отношение, и хватит с них. Я не коробочный документооборот делаю, слава богу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.03.2008, 01:05 |
|
||
|
Двузначное отношение. Посоветуйте структуру таблиц
|
|||
|---|---|---|---|
|
#18+
Может оказаться осмысленным добавить еще одно поле свободного ввода в таблицу ОТНОШЕНИЯ ДОКУМЕНТОВ для ситуации: документ Б отменяет "параграфы 1, 2.1., 5" документа А ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.03.2008, 05:49 |
|
||
|
Двузначное отношение. Посоветуйте структуру таблиц
|
|||
|---|---|---|---|
|
#18+
drevМожет оказаться осмысленным добавить еще одно поле свободного ввода в таблицу ОТНОШЕНИЯ ДОКУМЕНТОВ для ситуации: документ Б отменяет "параграфы 1, 2.1., 5" документа А Мм... сомневаюсь. Это получается memo-поле, с которым ни хрена не сделаешь. Скорее осмысленно, например, трехоперандное отношение - документ Б отменяет редакцию А-1 и вводит редакцию А-2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.03.2008, 13:39 |
|
||
|
Двузначное отношение. Посоветуйте структуру таблиц
|
|||
|---|---|---|---|
|
#18+
Не, ребята, это уже чересчур. Пусть юзера сами разбираются кто там чего. А то точно до седых волос три таблицы и две формы буду разрабатывать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.03.2008, 18:30 |
|
||
|
Двузначное отношение. Посоветуйте структуру таблиц
|
|||
|---|---|---|---|
|
#18+
softwarer drevМожет оказаться осмысленным добавить еще одно поле свободного ввода в таблицу ОТНОШЕНИЯ ДОКУМЕНТОВ для ситуации: документ Б отменяет "параграфы 1, 2.1., 5" документа А Мм... сомневаюсь. Это получается memo-поле, с которым ни хрена не сделаешь. Скорее осмысленно, например, трехоперандное отношение - документ Б отменяет редакцию А-1 и вводит редакцию А-2. не сработает в случае "документ Б приостанавливает действие статьи 138 бис документа А до 01.02.09" мемо-поле для простоты, чтоб не потерять информацию 2 КД: Случай просто интересный:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.03.2008, 19:10 |
|
||
|
Двузначное отношение. Посоветуйте структуру таблиц
|
|||
|---|---|---|---|
|
#18+
drevне сработает в случае "документ Б приостанавливает действие статьи 138 бис документа А до 01.02.09" При желании - сработает. Для этого нужно статью 138бис в новой редакции сформулировать как ".... с 01.02.09 стороны обязаны...." ;-) Разумеется, усложнять можно сколько угодно. Я к тому, что при простом мемо получается чрезмерное упрощение - это сводит БД просто к свалке документов, не имеющих никакого значения с точки зрения бизнес-логики. По сути почтовая система. Я как-то привык ориентироваться на более сложные ИС. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.03.2008, 19:22 |
|
||
|
Двузначное отношение. Посоветуйте структуру таблиц
|
|||
|---|---|---|---|
|
#18+
softwarer drevне сработает в случае "документ Б приостанавливает действие статьи 138 бис документа А до 01.02.09" При желании - сработает. Для этого нужно статью 138бис в новой редакции сформулировать как ".... с 01.02.09 стороны обязаны...." ;-) Разумеется, усложнять можно сколько угодно. Я к тому, что при простом мемо получается чрезмерное упрощение - это сводит БД просто к свалке документов, не имеющих никакого значения с точки зрения бизнес-логики. По сути почтовая система. Я как-то привык ориентироваться на более сложные ИС. Более сложная по хорошему предполагает собой структурирование документов, что бы их части являлись логическими единицами. Новая редакция - вещь опасная. Особенное если размеры документов велики, а изменения маленькие и их много. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.03.2008, 19:31 |
|
||
|
Двузначное отношение. Посоветуйте структуру таблиц
|
|||
|---|---|---|---|
|
#18+
drevБолее сложная по хорошему предполагает собой структурирование документов, что бы их части являлись логическими единицами. Конечно. И "дополнительное соглашение к договору" и прочие подобные документы - это в принципе набор изменений к имеющимся записям. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.03.2008, 19:34 |
|
||
|
Двузначное отношение. Посоветуйте структуру таблиц
|
|||
|---|---|---|---|
|
#18+
По мне, так бодяга с редакциями документов хорошо реализована в БД Консультант+. Сразу видно, что документ имеет более поздние редакции и в чём состоят изменения. Думаю, можно выделить два способа изменения документов. 1. Выпуск новой редакции документа в том числе инкрементной (например корректурные правки). 2. Выпуск другого документа, который как то изменяет смысл данного документа, но не меняет его буквально (например приказ о принятии или отмене документа). В первом случае мы трассируем версии документа, при этом имеем записи для каждой версии и записи о переходах. При чём в случае инкрементных изменений мы имеем запись-исходную редакцию документа, запись-документ на основании которого создана новая редакция, запись-новая редакцая документа и запись-связь между этими тремя объектами. Если документ очень большой, а изменения вносятся часто, то придётся подумать о структуре документа, чтобы трассировать не весь документ, а его структурные элементы с последующей сборкой на уровне презентации. Во втором случае новая редакция документа не создаётся, мы просто добавляем к документу связи с другими документами, в контексте которых нужно рассматривать данный документ. Связи можно както классифицировать (например: принят, отменён и т.п.), если это важно для системы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2008, 01:57 |
|
||
|
|

start [/forum/topic.php?fid=32&fpage=106&tid=1543989]: |
0ms |
get settings: |
10ms |
get forum list: |
21ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
86ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
66ms |
get tp. blocked users: |
1ms |
| others: | 244ms |
| total: | 450ms |

| 0 / 0 |
