2012-03-30 9 views
2

私はモジュール化されたJava Webアプリケーションを開発中です。モジュール(可視ティア)とビジネス/データベースティアとの間の依存関係は、gradleによって解決されます。技術的には、私のデータベースは、デプロイされた可視モジュールで実際に使用されるエンティティ用のテーブルを保持するだけです。しかし、これにより、本番環境でデータベースを移行する際に問題が発生する可能性があります。したがって、依存関係からデータベーススキーマを作成する以外に、2つのオプションがあります。モジュール式データベースレイアウト:私のユースケースの正しいアプローチですか?

1)使用可能なすべてのエンティティに対して、常に1つのスキーマがあります。したがって、実際のデータベースには、デプロイされたモジュールで使用されていないエンティティも含め、すべてのエンティティのテーブルが保持されます。これにより、運用環境での移行は非常に簡単になりますが、開発中にエンティティを保持するデータベースとフォルダが紛らわしくなります。

2)私は論理的に分離されたいくつかの独立したスキーマを持っています。各スキーマはサーバー上のデータベースになります。必要なスキーマは、モジュールの依存関係によって解決されます。私はすべてのスキーマをそれ自身のために移行します。したがって、移行はまだ管理可能です。

データベース用のサーバは、次のようになります。

  • MySqlServer
    • AuthorizationDatabase
      • USERTABLE
      • ROLETABLE
      • UserRoleRelationshipTable
    • BlogPostDatabase
      • PostTable
      • CommentsTable
      • など

..

代わりに、1つのモノリシックデータベースの多くの小規模データベースのアイデアがする場合しかし、私は知りません潜在的なトラブルにつながります。特にパフォーマンスに関して。

答えて

0

私は、次のような理由のために単一のデータベースをお勧めします:

a)はMySQLが利用可能なサーバリソース

Bに応じて、数千のテーブルを処理することができます)

Cを管理する方が簡単です)顧客基盤が1台のサーバの限界を超えて拡大した場合、新しい顧客を扱うための新しいサーバを作成し、それを拡張することもできます。

関連する問題