У меня есть проект, состоящий из веб-приложения, базы данных и программы, работающей в фоновом режиме, которая обрабатывает строки, созданные webapp. Обе программы работают с базой данных и сохраняют необходимую информацию (с таблицами, которые используют оба приложения).Ответственность за использование многопользовательского приложения для базы данных
Для того, чтобы ситуация немного яснее позволяет сказать, что у меня есть база данных (используется в моих приложениях эксклюзивных), содержащих три таблицы A, B и C.
- А используется только мой веб-приложение.
- C используется только другой программой.
- B содержит столбцы, которые нужны только webapp, а также столбцы, которые использует другая программа, и, конечно, столбцы, используемые обоими.
Вы можете думать весь проект так:
- Пользователь размещает заказ throu веб-приложение
- веб-приложение сохраняет заказ в базе данных
- Другая программа получает доступ к базе данных и обрабатывает порядок
- При возникновении ошибок во время обработки они также хранятся в базе данных
Это поднимает следующие вопросы:
- Какая программа должна нести ответственность за управление таблицами в базе данных?
- Должна ли каждая программа самостоятельно управлять своими исключительно необходимыми таблицами или управлять всем, чтобы база данных управлялась из центральной точки?
- Кому следует управлять таблицами, которые нужны обоим приложениям?
- Или я должен управлять базой данных себя как структура базы данных не должны меняться, что часто так или иначе
Некоторая информация на стороне: СУБД postgres 9,3, WebApp использует playframework и доступ к базе данных throu anorm (в настоящее время управляет базой данных с использованием эволюций), а другая программа записывается в scala и поддерживает базу данных с использованием slick.
Здесь кажется много путаницы ... Бэкэнд - это база данных. Интерфейс никогда не должен взаимодействовать с базой данных. ... –
@ThomasWeller Я знаю, что вы имеете в виду, но я не знаю, как я должен это назвать. По интерфейсу я имею в виду все приложение, с которым пользователь взаимодействует, и который, собственно, сам состоит из его интерфейса (веб-gui) и бэкэнд (модель и контроллер), и с помощью бэкэнд (в вопросе), я имею в виду приложение, которое просто обрабатывает информацию в базе данных и делает вещи, результаты которых пользователь будет испытывать, но никогда не взаимодействует напрямую с этим приложением. – mgttlinger
Да, но сначала вы должны прояснить свои концепции: Frontend (лучше: логика представления) - это та часть, которая отвечает за взаимодействие с конечным пользователем. Бизнес-логика - это то, что вы называете «бэкэнд» (модель и контроллер).И логика доступа к данным - это ТОЛЬКО часть, которая должна взаимодействовать с базой данных (бэкэнд приложения). –