#sqlite #air #adobe
#sqlite #air #adobe
Вопрос:
У меня есть продукт для коммерческих точек продаж, написанный на Adobe AIR и работающий сейчас примерно в 100 точках розничной торговли. У большинства моих клиентов в магазине около 5 компьютеров. У некоторых из моих крупных клиентов 10-20 компьютеров.
В настоящее время приложение использует встроенную базу данных SQLite для сохранения данных. На ранней стадии я допустил огромную техническую ошибку, и у некоторых из моих крупных клиентов возникли проблемы. Мне интересно, может ли кто-нибудь предложить несколько идей о том, как обойти проблему. Вот оно…
Приложение работает в режимах Master и Workstation. В режиме Master база данных находится на физическом компьютере. В режиме рабочей станции приложение обращается к базе данных по сети. SQLite не предназначен для использования таким образом, и это вызывает всевозможные проблемы (блокировка файлов, исчезновение данных, повреждение файлов и т.д.).
Я ломал голову над тем, как решить эту проблему, не полностью переписывая приложение. У меня есть хорошее разделение задач в приложении, поэтому у меня есть возможность перезаписать уровень данных.
Вот некоторые из требований: 1) Приложение должно работать в автономном режиме 2) Решение должно быть способно обрабатывать транзакции 3) Решение должно поддерживать синхронные соединения
Некоторые из идей, которые у меня возникли, следующие:
1) Напишите «сервер базы данных», который находится перед базой данных и позволяет запускать только 1 инструкцию одновременно. 2) Измените базу данных на MySQL и используйте библиотеку assql. Я не верю, что это поддерживает синхронные инструкции.
Какие идеи у вас есть?
Спасибо!
Комментарии:
1. вы можете создать базу данных MySQL и сохранить ее с помощью php, но предполагая, что в локальной сети нет сервера mysql и / или php, вы могли бы подключить рабочие станции к ведущему серверу и позволить ведущему выполнять действия с базой данных. Рабочие станции могут ставить действия с базой данных в очередь на сервере. Таким образом, у вас будет только 1 активное подключение к sqlite в сети.