Стратегия сетевого приложения., Помогите определиться, какой путь надежней. |
Здравствуйте, гость ( Вход | Регистрация )
Стратегия сетевого приложения., Помогите определиться, какой путь надежней. |
dzyk |
15.9.2008, 0:48
Сообщение
#11
|
Студент Группа: Участник Сообщений: 21 Регистрация: 13.4.2008 Пользователь №: 148 Спасибо сказали: 0 раз(а) Репутация: 0 |
Нужно подумать как обойти класс QSQLTableModel Если унаследовать QSQLTableModel и переопределить setData, в котором создать кэширование запросов. Неужели нет другого способа? Мой вариант такой - ставим на все тачки Git Мне кажется, это очень сложно. Git очень серьезная вещь (хотя с ней не знаком, но судя по описаниям). В моем случае это кАщунство. |
|
|
DmP |
15.9.2008, 3:48
Сообщение
#12
|
Студент Группа: Участник Сообщений: 61 Регистрация: 11.3.2008 Пользователь №: 116 Спасибо сказали: 15 раз(а) Репутация: 2 |
Неужели нет другого способа? SQLite поддерживает простые триггеры, поставте перехват на INSERT, DELETE и UPDATE: http://sqlite.org/lang_createtrigger.html |
|
|
dzyk |
15.9.2008, 23:05
Сообщение
#13
|
Студент Группа: Участник Сообщений: 21 Регистрация: 13.4.2008 Пользователь №: 148 Спасибо сказали: 0 раз(а) Репутация: 0 |
|
|
|
Litkevich Yuriy |
16.9.2008, 5:13
Сообщение
#14
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
|
|
|
ViGOur |
16.9.2008, 8:09
Сообщение
#15
|
Мастер Группа: Модератор Сообщений: 3296 Регистрация: 9.10.2007 Из: Москва Пользователь №: 4 Спасибо сказали: 231 раз(а) Репутация: 40 |
|
|
|
Litkevich Yuriy |
16.9.2008, 8:17
Сообщение
#16
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
|
|
|
Litkevich Yuriy |
16.9.2008, 8:54
Сообщение
#17
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
|
|
|
dzyk |
16.9.2008, 21:40
Сообщение
#18
|
Студент Группа: Участник Сообщений: 21 Регистрация: 13.4.2008 Пользователь №: 148 Спасибо сказали: 0 раз(а) Репутация: 0 |
разве есть такая возможность в БД, в частности в SQLite? Ну в файл то точно НЕТ. Вот пример триггера SQLite ( при каждом инсерте в таблицу people поля id,fio сохраняются в таблицу Log_table)
Осталось только включить фанатазию и написать алгоритм синхронизации между программами. Покритикуйте такой вариант: Запускается 1П, обращается в сеть. Если не находит другой П2 или Пх. То открывает свою БД и работает с ней как с "верной" БД. После этого запускается П2. видит П1 и запрашивает у нее "данные для синхронизации БД". Приводит свою БД2 в соответсвии с БД1. И спокойно работает. При этом все изменения в своей БД2 отсылаются в БД1. А изменения в БД1 (1П соотв) копируются в БД2. С инсертами проблем не будет, а вот апдейты строк нужно обрабатывать с учетом системного времени, которое на всех машинах(приложениях) сети должно быть синхронизировано. Это конечно самый ненадежный способ. А если кто-то работал в оффлайне и изменял свою БД? Алгоритм намного усложняется. |
|
|
ViGOur |
17.9.2008, 12:00
Сообщение
#19
|
Мастер Группа: Модератор Сообщений: 3296 Регистрация: 9.10.2007 Из: Москва Пользователь №: 4 Спасибо сказали: 231 раз(а) Репутация: 40 |
Еще есть вариант того, что 1П и 2П работают в офлайне, оба изменяют одну и ту же запись, что ты будешь делать(значения записи разные)?
|
|
|
AD |
17.9.2008, 12:06
Сообщение
#20
|
Профессионал Группа: Участник Сообщений: 2003 Регистрация: 4.2.2008 Из: S-Petersburg Пользователь №: 84 Спасибо сказали: 70 раз(а) Репутация: 17 |
Цитата Еще есть вариант того, что 1П и 2П работают в офлайне, оба изменяют одну и ту же запись, что ты будешь делать(значения записи разные)? А есть у пользователей какие-нибудь приоритеты? Возможно, это бы немного облегчило жизнь. Сохранить обновление того пользователя, чей приоритет выше. |
|
|
Текстовая версия | Сейчас: 23.11.2024, 2:36 |