Skip to content

ya-breeze/TM

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

This is a TM program

For any troubles please email me at ya-breeze@ya.ru

Thank you


---
LocalUpdated & GlobalUpdated

При синхронизации время обновления должны оставаться тем же самым, чтобы
при повторной синхронизации избежать копирования задачи обратно, т.е.
чтобы избежать зацикливания.

Зачем нужно два поля. Пусть у нас есть три узла: А, В, С.
Пусть все узлы в момент времени 1 синхронизированы.
Теперь при такой последовательности:
1. все синхронизированы
2. А добавил задачу Т1.
3. В добавил задачу Т2.
4. С синхронизировался с В. Теперь на С есть задача Т2. Причём время
    обновления задачи - 3, чтобы избежать бесконечной синхронизации.
5. В синхронизировался с А. Теперь на В есть задачи Т1(время 2), Т2(время 3).
6. С синхронизируется с В. Т.к. он помнит, что уже синхронизировался в момент
времени 4, то запрашивает изменения с этого момента. Но т.к. задача Т1 относится
ко времени 2, то она не попадает в синхронизацию и поэтому не попадёт на С.

Поэтому и нужно две метки времени. Глобальная - время изменения задачи,
локальная - время попадания задачи на этот узел. При локальной правке задачи
меняются обе метки.


---
Запрос для выборки количества детей у задач
select uuid, children from Tasks LEFT JOIN (Select parentUuid, count(*) as children from Tasks group BY parentUuid) as t ON Tasks.uuid=t.parentUuid;

About

kind of task management program

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published