Как правильно реализовать связывание двух документов?

fedotxxl

Well-known member
09.11.2005
614
0
#1
Поле документа А берет значение из документа Б (при выборе человеком). Через некоторое время документ Б меняется. Как мне обновить документ А?
Интересует не тупое решение, а модель построения связей
 

morpheus

скриптописец
07.08.2006
3 915
1
#3
<!--QuoteBegin-fedotxxl+7:12:2007, 00:55 -->
<span class="vbquote">(fedotxxl @ 7:12:2007, 00:55 )</span><!--QuoteEBegin-->Как мне обновить документ А?
[snapback]88824" rel="nofollow" target="_blank[/snapback]​
[/quote]
да собственно как всегда - ручками

Какие у них отошения не важно . Первое что приходит респонсы. Но если документы респонсами делать не хочеться , можно просто хранить в дочерних документаз униды тех на кого они ссылаються

Вопрос обобщен - конкретизируйте
 

alb

Well-known member
13.07.2005
212
0
#4
да с этим проблемы, обновления придется делать ручками или агентом.

как вариант, иногда вот что делаю.
храню юнид документа А в документе Б. а то поле которое берется из документа А делаю вычисляемым при открытии. и вешаю формулу с дблукапом.
но лучше так не делай. это так вариант с вытекающими мучениями )))
самый то агентом обновить
 
S

Sandr

#5
да с этим проблемы, обновления придется делать ручками или агентом.

как вариант, иногда вот что делаю.
храню юнид документа А в документе Б. а то поле которое берется из документа А делаю вычисляемым при открытии. и вешаю формулу с дблукапом.
но лучше так не делай. это так вариант с вытекающими мучениями )))
самый то агентом обновить
Если обновление должно быть актуальным при каждом открытии документа, то это единственный способ...

Если же можно терпеть некоторое время, то лучше обновлять шедульным агентом...
Хотя, как вариант, можно на квериоупен документа впизнуть вычисление... :)
 

morpheus

скриптописец
07.08.2006
3 915
1
#6
<!--QuoteBegin-alb+7:12:2007, 09:24 -->
<span class="vbquote">(alb @ 7:12:2007, 09:24 )</span><!--QuoteEBegin-->обновления придется делать ручками или агентом.
[snapback]88857" rel="nofollow" target="_blank[/snapback]​
[/quote]
В любом случае, это не реляционки

<!--QuoteBegin-alb+7:12:2007, 09:24 -->
<span class="vbquote">(alb @ 7:12:2007, 09:24 )</span><!--QuoteEBegin-->вычисляемым при открытии. и вешаю формулу с дблукапом.
[snapback]88857" rel="nofollow" target="_blank[/snapback]​
[/quote]
Зло.... лучше всё таки ночным агентиком
 

fedotxxl

Well-known member
09.11.2005
614
0
#7
Оно понятно, что делать нужно будет агентом... Сейчас мне интересна модель
Представьте, что у вас есть справочник. Из этого справочника разные документы (по разным формам) в разные поля берут значение (при выборе справочника пользователем)
Как нам обновить все поля во всех документах при изменении значения справочника?
Каким образом помечать, что поле Field1 тянет значение из справочника такого-то...

Вариант, который набросал себе только что:
в документе (который тянет справочник) есть три поля:
ReferenceFIELDs = поля, которые тянут откуда-то
ReferenceUNIDs = юниды на справочники
ReferenceFORUMLAs = поля, которые нужно взять из справочника (можно @ формулу)
Гм... справочник ведь может не знать, что он справочник? Получается, что агент будет бегать по документам, у которых есть поле ReferenceUNIDs, сравнивать результат ReferenceFORUMLAs с содержимым поля из ReferenceFIELDs и если значение изменено, то пересохранять документ. Что-то мне кажется, что при больших объемах загнется это... Как думаете?
 
S

Sandr

#8
"справочник ведь может не знать" - а Вы его научите :)

Вычисляйте при открытии и не парьтесь... Работает нормально...
 

morpheus

скриптописец
07.08.2006
3 915
1
#9
<!--QuoteBegin-fedotxxl+7:12:2007, 13:37 -->
<span class="vbquote">(fedotxxl @ 7:12:2007, 13:37 )</span><!--QuoteEBegin-->Как думаете?
[snapback]88921" rel="nofollow" target="_blank[/snapback]​
[/quote]
Зло... зачем Вы пытаетесь из Лотуса зделать SQL ?
 

fedotxxl

Well-known member
09.11.2005
614
0
#10
Для: Sandr
В представлениях нельзя отображать... Предположим документ один, 1000 человек работает с ним... очень рациональное получается у вас решение

Для: Morpheus
А что делать? Требуется...
 
S

Sandr

#11
Для: fedotxxl

Я вроде и слова не сказал о представлениях...

"Предположим документ один, 1000 человек работает с ним" - и что? хоть сто тысяч...
 

fedotxxl

Well-known member
09.11.2005
614
0
#12
Для: Sandr
Один раз забить в документ значение или сто тысяч раз тащить значение из другого документа. Что лучше?
 
30.05.2006
1 345
11
#13
То-ли задачка неверно проектируется, то-ли инструмент неправильный выбран
1. Notes не реляционка
2. Реляционка тебя тоже не спасла-бы: или "сто тысяч раз тащить значение из другого" рекорда (в случае нормализации), либо для "автоматической" модификации полей городить аге.. тьфу! триггер (при денормализации)!

Результат:
- либо безвинная дискредитация Нотеса, как средства решения задач
- либо дискредитация решателя ;-)
 

fedotxxl

Well-known member
09.11.2005
614
0
#14
Для: Constantin A Chervonenko
То, что Notes не реляцонка я и так знаю, но если для реляционки "сто тысяч раз тащить значение из" другой таблицы - одно из её предназначений, то для LN...

Так все-таки... никого не интересует нормальное решение вопроса?
Не держать вообще значение в документе, а тянуть при открытии? Тут два вопроса - как быстро работает / невозможно отображать значения в представлениях
Или же ночным агентом обновлять значения? Здесь нужно думать, как лучше сделать
 
30.05.2006
1 345
11
#15
Ну, по смыслу решать...
Документо-ориентированность не предполагает изменения содержимого док-та при изменении справочника, на который док-т ссылается.
Как вы видите себе, к примеру, изменение свидетельства о рождении в случае переименования улицы, города, страны наконец?
Как вы видите возможность защиты такого док-та электронной подписью?

Вывод: тот объект, который вы пытаетесь затолкнуть в Домину, НЕ ДОКУМЕНТ. Т.е. если модель данных вашей задачи верна (о чем я заочно судить не могу), то выбор инструмента неудачен.

Задайте себе дополнительные вопросы: предполагаемая база - реально распределенная? Если да, то выбор Домины может быть оправдан, но тогда структуру данных надо прожектировать с закладом на это (имея в виду, справочник НЕ БУДЕТ реплицироваться синхронно с осн.базой)
 

morpheus

скриптописец
07.08.2006
3 915
1
#16
<!--QuoteBegin-Constantin A Chervonenko+10:12:2007, 01:35 -->
<span class="vbquote">(Constantin A Chervonenko @ 10:12:2007, 01:35 )</span><!--QuoteEBegin-->Документо-ориентированность не предполагает изменения содержимого док-та при изменении справочника, на который док-т ссылается.
[snapback]89141" rel="nofollow" target="_blank[/snapback]​
[/quote]
Абсолютно согласен, иначе вся отчетность, да и вообще результат работы коту под хвост


<!--QuoteBegin-fedotxxl+9:12:2007, 13:54 -->
<span class="vbquote">(fedotxxl @ 9:12:2007, 13:54 )</span><!--QuoteEBegin-->Не держать вообще значение в документе, а тянуть при открытии?
[snapback]89094" rel="nofollow" target="_blank[/snapback]​
[/quote]
Коту под хвост такой функционал