Webアプリケーション、データベース、およびWebアプリケーションによって作成された行を処理するバックグラウンドで実行されるプログラムで構成されるプロジェクトがあります。どちらのプログラムもデータベースを操作し、必要な情報を保存します (両方のアプリケーションが使用するテーブルを使用)。
状況を少し明確にするために、3 つのテーブル A、B、および C を含むデータベース (アプリケーションで排他的に使用) があるとします。
- A は私の webapp でのみ使用されます。
- C は他のプログラムでのみ使用されます。
- Bには、webappのみが必要とする列と、他のプログラムが使用する列、そしてもちろん両方で使用される列が含まれています。
プロジェクト全体を次のように考えることができます。
- ユーザーがウェブアプリから注文する
- webapp は注文をデータベースに保存します
- 他のプログラムがデータベースにアクセスし、注文を処理します
- 処理中にエラーが発生した場合、これらもデータベースに保存されます
これにより、次の疑問が生じます。
- データベース内のテーブルの管理を担当するプログラムはどれですか?
- すべてのプログラムは、独自に必要なテーブル自体を管理する必要がありますか?それとも、データベースが中央から管理されるようにすべてを管理する必要がありますか?
- 両方のアプリケーションが必要とするテーブルを誰が管理する必要がありますか?
- または、とにかくデータベース構造がそれほど頻繁に変更されるべきではないため、データベースを自分で管理する必要があります
側面の情報: DBMS はpostgres 9.3、webapp は playframework を使用し、 anormを介してデータベースにアクセス(現在、evolutions を使用してデータベースを管理)、および他のプログラムは scala で作成され、 slick を使用してデータベースにアクセスします。