Привет всем!
Интересно, есть ли в целом предпочтительная парадигма реализации, которую следует уважать, если вы хотите, чтобы два совершенно разных приложения для Android обращались к одной и той же базе данных и работали с ней? Рекомендуется ли или даже технически возможно сделать это вообще? Как будет выглядеть такая архитектура?
На данный момент я рассматриваю возможность реализации двумя приложениями своих собственных ContentProvider
(оба ContentProvider
будут обращаться к одной и той же базе данных, но гарантированно никогда одновременно). Я также думал о создании одного общего поставщика контента и позволяю обоим приложениям использовать его при доступе к базе данных. Я предпочитаю первый пример, но не отказываюсь полностью от последнего.
ОБОСНОВАНИЕ:
У меня есть два приложения, которым требуется доступ к общей базе данных. Сама база данных хранит данные, но также описывает взаимосвязь между строками данных, обычно описывая набор «форм», где содержимое формы; Элементы пользовательского интерфейса, такие как текстовые поля, кнопки и различные виды списков, можно настраивать. Оба приложения используют эти «данные описания» в базе данных для создания частей соответствующего пользовательского интерфейса приложения во время выполнения.
Следовательно, есть два аспекта двух приложений: один «административный» аспект (управление структурой данных и отношениями между строками данных) и один «общий пользовательский» аспект (чтение/изменение фактических значений данных). Это осознанный выбор разделить эти два аспекта в отдельных приложениях.
ПРИМЕЧАНИЕ! Значения данных отделены от структуры данных, т.е. значения хранятся в одной отдельной таблице, а структура описывается в другой таблице. . Это означает, что два приложения будут существенно изменять две разные таблицы в одной и той же базе данных и никогда, так сказать, не изменят «другую таблицу».
Мы очень признательны за любые мысли. Приложение пока находится на стадии планирования, поэтому сейчас самое время внести фундаментальные изменения.