2013-12-17 2 views
0

У меня есть проект, состоящий из веб-приложения, базы данных и программы, работающей в фоновом режиме, которая обрабатывает строки, созданные webapp. Обе программы работают с базой данных и сохраняют необходимую информацию (с таблицами, которые используют оба приложения).Ответственность за использование многопользовательского приложения для базы данных

Для того, чтобы ситуация немного яснее позволяет сказать, что у меня есть база данных (используется в моих приложениях эксклюзивных), содержащих три таблицы A, B и C.

  • А используется только мой веб-приложение.
  • C используется только другой программой.
  • B содержит столбцы, которые нужны только webapp, а также столбцы, которые использует другая программа, и, конечно, столбцы, используемые обоими.

Вы можете думать весь проект так:

  1. Пользователь размещает заказ throu веб-приложение
  2. веб-приложение сохраняет заказ в базе данных
  3. Другая программа получает доступ к базе данных и обрабатывает порядок
  4. При возникновении ошибок во время обработки они также хранятся в базе данных

Это поднимает следующие вопросы:

  • Какая программа должна нести ответственность за управление таблицами в базе данных?
  • Должна ли каждая программа самостоятельно управлять своими исключительно необходимыми таблицами или управлять всем, чтобы база данных управлялась из центральной точки?
  • Кому следует управлять таблицами, которые нужны обоим приложениям?
  • Или я должен управлять базой данных себя как структура базы данных не должны меняться, что часто так или иначе

Некоторая информация на стороне: СУБД 9,3, WebApp использует и доступ к базе данных throu (в настоящее время управляет базой данных с использованием эволюций), а другая программа записывается в scala и поддерживает базу данных с использованием .

+0

Здесь кажется много путаницы ... Бэкэнд - это база данных. Интерфейс никогда не должен взаимодействовать с базой данных. ... –

+0

@ThomasWeller Я знаю, что вы имеете в виду, но я не знаю, как я должен это назвать. По интерфейсу я имею в виду все приложение, с которым пользователь взаимодействует, и который, собственно, сам состоит из его интерфейса (веб-gui) и бэкэнд (модель и контроллер), и с помощью бэкэнд (в вопросе), я имею в виду приложение, которое просто обрабатывает информацию в базе данных и делает вещи, результаты которых пользователь будет испытывать, но никогда не взаимодействует напрямую с этим приложением. – mgttlinger

+0

Да, но сначала вы должны прояснить свои концепции: Frontend (лучше: логика представления) - это та часть, которая отвечает за взаимодействие с конечным пользователем. Бизнес-логика - это то, что вы называете «бэкэнд» (модель и контроллер).И логика доступа к данным - это ТОЛЬКО часть, которая должна взаимодействовать с базой данных (бэкэнд приложения). –

ответ

0

Поскольку никто не обеспечивает лучшее решение, я решил управлять DB вручную, так как структура базы данных не должна меняться после того, как мое приложение запустится вживую.

Смежные вопросы