私はモジュール化されたJava Webアプリケーションを開発中です。モジュール(可視ティア)とビジネス/データベースティアとの間の依存関係は、gradleによって解決されます。技術的には、私のデータベースは、デプロイされた可視モジュールで実際に使用されるエンティティ用のテーブルを保持するだけです。しかし、これにより、本番環境でデータベースを移行する際に問題が発生する可能性があります。したがって、依存関係からデータベーススキーマを作成する以外に、2つのオプションがあります。モジュール式データベースレイアウト:私のユースケースの正しいアプローチですか?
1)使用可能なすべてのエンティティに対して、常に1つのスキーマがあります。したがって、実際のデータベースには、デプロイされたモジュールで使用されていないエンティティも含め、すべてのエンティティのテーブルが保持されます。これにより、運用環境での移行は非常に簡単になりますが、開発中にエンティティを保持するデータベースとフォルダが紛らわしくなります。
2)私は論理的に分離されたいくつかの独立したスキーマを持っています。各スキーマはサーバー上のデータベースになります。必要なスキーマは、モジュールの依存関係によって解決されます。私はすべてのスキーマをそれ自身のために移行します。したがって、移行はまだ管理可能です。
データベース用のサーバは、次のようになります。
- MySqlServer
- AuthorizationDatabase
- USERTABLE
- ROLETABLE
- UserRoleRelationshipTable
- BlogPostDatabase
- PostTable
- CommentsTable など
- AuthorizationDatabase
..
代わりに、1つのモノリシックデータベースの多くの小規模データベースのアイデアがする場合しかし、私は知りません潜在的なトラブルにつながります。特にパフォーマンスに関して。