Я разработал приложение PHP для своей компании, проблема в том, что я только что обнаружил, что приложение должно работать и в автономном режиме.
Приложение работает следующим образом: некоторые данные загружаются из базы данных MySQL, затем вам нужно скомпилировать несколько контрольных списков, вставить новые данные в базу данных и, в конце концов, сгенерировать JSON.
Приложение будет использоваться многими сотрудниками нашей компании, поэтому мы подумали об установке на своих компьютерах веб-сервера (Apache) и запуске приложения на своих компьютерах. Проблема в том, что, если мы решим пойти по этому пути, мы должны:
У нас нет времени думать о реальном настольном Java-приложении, потому что это приложение будет использоваться с января, поэтому у нас нет времени его разрабатывать.
Есть ли у вас какие-либо предложения? Есть ли что-то, о чем я не думаю, или технология, которая может мне помочь?
Спасибо!
PS. Я рассмотрел такие программы, как Nightrain PHP Desktop, но они только избегают установки Apache, не более того …
Вступление
Поскольку вам, очевидно, нужно быстрое решение, я дам вам одно. Это основано на информации, которую мы знаем. Предупреждение, это решение не элегантно, и вам НУЖНО заменить его, когда у вас будет такая возможность.
Решение
BINARY(16)
с индексом.Каждая запись будет нуждаться в том, чтобы ее псевдо-первичный ключ генерировался случайным образом с помощью CSRNG. Бинарный 16 просто удобен для соответствия стандарту UUID. Это обеспечит уникальную индексацию каждой новой записи, несмотря на недостаток знаний о других дистрибутивах.
У ваших таблиц не будет индексов первичных ключей, потому что они уникальны, и поскольку база данных будет распределена, проверить уникальность ключей в любом случае будет невозможно, поэтому нет смысла использовать ее.
Фактически, как правило, все данные в центральной базе данных теперь будут доступны только для записи / только для чтения. Неважно, насколько ошибочны вновь объединенные данные, их нельзя ни удалять, ни изменять.
Таким образом, каждая таблица будет нуждаться в метке времени.
То, что у вас осталось, это центральная база данных, которая принимает все данные, а изменения в данных будут представлены наличием более новых данных.
Заключение
Я бы использовал это решение, только если бы я действительно имел. На самом деле, я бы оценил только 80% вероятности того, что он будет работать даже с некачественным качеством. Это также предполагает, что вы можете посвятить все оставшееся время разработки ре-факторингу методов вставки данных.
Вам придется столкнуться с тем фактом, что для управления целостностью данных потребуется много административной работы с центральной базой данных, и вам придется работать с предположением, что вы не можете изменить формат вход объединяется с ноутбуков.
Каждая новая функция должна быть обратно совместима со старыми данными.
Других решений пока нет …