Счетчик

wowa

Well-known member
01.02.2007
848
0
#1
Задача такова: нужно сделать счетчик просмотров на каждый документ., т.е. как на форуме: "данную тему просматривали N раз". Причем счетчик должен работать как в Вебе, так и в Лотусе

Как это лучше всего сделать?, чтобы не было разных конфликтов и ошибок...

Вариант, чтобы при открытии документа там в поле_счетчик срабатывал "+1", вроде не подходит! Будут насколько я понимаю конфликты...

Есть один вариант, это при открытии документа создавать документ (где будет занесено в определенное поле ID главного документа )
И так каждый раз на каждый документ....
Потом по расписанию работает агент, ... он считает сколько доков с ID_№1, и заносит(прибавляет) в поле этого документа, далее удаляет все левые документы, которые были созданы при открытии...
Т.е., пример:

Есть главный документ, в нем счетчик = 5
ID главного документа = N

За день этот документ открывали 10 раз. создано 10 левых документов, В каждом из этих документов есть полеID со значением "N"
Далее работает агент, находит, что количество документов со значением "N" равно 10, и прибавляет в главном документе в счетчик число 10, получается что док открывали уже 15 раз....

Надеюсь что идея ясна...
У кого какие есть замечания к этой идеи....
Может у кого-н есть другие мысли, может кто делал счетчик???????????
 

Omh

Lotus team
04.07.2007
2 210
1
#2
Почему не делать только 1 сторонний документ для каждого отслеживаемого, в котором и апдейтить счётчик?
Зачем нам новый док на каждое открытие?
 

wowa

Well-known member
01.02.2007
848
0
#3
Omh , вопрос конечно интересный, думаю профи подскажут ответ на этот вопрос...
Просто думаю создать новый документ будет быстрей, чем искать ранее созданный и добавлять к нему +1...И не факт что документ создан
Тем более я думал что агент будет удалять эти документы по расписанию

Также если 2 юзера откроют один и тот же документ, то может быть какой-н конфликт при изменении документа_счетчика
 

Omh

Lotus team
04.07.2007
2 210
1
#4
А потом база будет засерена делишен стабами по самое "не балуйся".

И меня терзают смутные сомнения, что при изменеии дока счётчика может появиться конфликт: там все действия достаточно быстры.
В крайнем случае можно систему локинга простенькую начирикать (использовать встроенную).

Лучше не лениться, апдейтить один и тот же документ.
Базе будет легче.
 

morpheus

скриптописец
07.08.2006
3 915
1
#5
И меня терзают смутные сомнения, что при изменеии дока счётчика может появиться конфликт: там все действия достаточно быстры.
будут возникать. было такое при атоматическом нумераторе ( у меня )


а может в виде просто использовать @DocChildren - кол-во ответов и будет количеством просмотров... хотя канечно база будет "засрана"
 

wowa

Well-known member
01.02.2007
848
0
#6
А потом база будет засерена делишен стабами по самое "не балуйся".
думал над этим...

Если популярность БД будет не велика, то думаю ничего страшного...

А если наоборот, то думал создать какую-н левую БД, где будут хранится только эти документы
 

Omh

Lotus team
04.07.2007
2 210
1
#7
Morpheus
Ок.

Но генерить док на каждое открытие на базе с рабочими документами - непозволительная роскошь.
Выносим тогда эти документики-факты открытия в соседнюю простенькую базу и генерим их там.

Цитата отседа:
""...Domino воспринимает делишин стабы так же как и все остальные документы и при сёрче он их тоже проверяет на удовлетворение критериям отбора...""

Сам не проверял пока.
 

morpheus

скриптописец
07.08.2006
3 915
1
#8
Выносим тогда эти документики-факты открытия в соседнюю простенькую базу и генерим их там.
ну и как продолжение мысли ,просто каждый Х минут агентом собираем данные о доках -фактах и заносим их в главный документ... простенькая база пусть очищаеться каждый день )))).. точнее ночь... часика в 2 например
 

wowa

Well-known member
01.02.2007
848
0
#9
думал создать какую-н левую БД, где будут хранится только эти документы
Выносим тогда эти документики-факты открытия в соседнюю простенькую базу и генерим их там.
Ну вот как я и думал...

Может есть еще какой-н другой вариант счетчика?
 

Omh

Lotus team
04.07.2007
2 210
1
#10
А остальное - разновидности в зависимости от того куда и как кропалить:
1. тек. док
2. сторонний док
3. профайл :)

Кмк, ничего принципиально нового не придумаеться...
 

wowa

Well-known member
01.02.2007
848
0
#11
""...Domino воспринимает делишин стабы так же как и все остальные документы и при сёрче он их тоже проверяет на удовлетворение критериям отбора...""
Хмм..... У меня в БД есть поисковик,.... т.е. если я не вынесу в отдельную БД, то мой поисковик начнет МЕДЛЕННЕЙ работать? Я правильно понял!
 

Omh

Lotus team
04.07.2007
2 210
1
#12
wowa
Ну это ещё надо проверить.
Т.к. источник не трастед :)

Но если это правда, то да.
 
O

oxystile

#13
для каждого документа (А) сделать документ счетчик(В) пусть там будет поле ID документа(А), для кот. он счетчик.
в основном документе будет поле -кол-во просмотров, кот берет значения из этого дока-счетчика,и поле, будет вычисляться через формулу при открытии, но не не сохраняется, да и зачем.
а за тем, чтобы не было конфликтых документов-счетчиков следим в программе, т.е. перед увеличением счетчика берем документ счетчик по ID документа(А), здесь также можем проверить их количество, за основу брать тот док, где значение счетчика выше, остальные убить