2011-01-05 4 views
0

私たちは、JDBCとOracle Databaseに基づいて動作するアプリケーションを持っています。アプリケーションの別のインスタンスを作成する必要があります。新しく作成されたアプリケーションのインスタンスは、その企業の信頼できるクライアント用に設計されており、同じアプリケーションサーバーにアクセスするという事実は問題にはなりません。アプリケーションの別のインスタンスを展開2つのインスタンス(1つまたは2つのデータベースインスタンス)にアプリケーションをフォークしますか?

  1. と別のデータベースを作成します。私たちはタスクを達成する方法の3つのオプションを持っているので、

    そしてここに私たちの疑問は、発生します。すべてのテーブルは、我々は

あり、一部に取り組んでいるインスタンスを定義し、別の列を持っているでしょう -

  • は2つの別々のデータベース
  • アプリケーションと「インスタンス」をサポートするためのデータベースを変更するにアクセスするためにアプリケーションを変更します変更の努力、維持の容易さ(アプリケーションとデータベースのパッチ、リポジトリへの保存、2つのバージョンを最新の状態にする必要性)を考慮する必要があります。

    私はこの質問にはっきりと明白な答えがないことを知っていますが、あなたの意見を聞きたかっただけです。それぞれの賛否両論の賛否両論を見てみたいと思います。

  • 答えて

    1

    2つのインスタンスに別々のデータセットが表示される場合、2つの別々の(同一の)DBスキーマを作成し、最初のスキーマで動作するファーストインスタンスと2番目のスキーマで動作する2番目のインスタンスを構成するのが最も簡単な方法です。

    両方のインスタンスに同じデータが表示される場合は、同じデータベースで動作するように設定してください。

    いずれにしても、このような愚かな要件をサポートするようにコードを変更しないでください。あなたがそのような要件の1つを受け取った場合、将来的にはより多くを受け取ることになります(私は占い師ではありません。さらに別のデプロイメント要件が発生するたびに、アプリケーションを変更する最後のことだと思います。

    +0

    それぞれのインスタンスのデータは完全に分離されていますが、実際にはインスタンス間のアクセスが必要になることもあります。しかし実際には、データベースではなくスキーマを使ったアイデアは良い解決策かもしれません。 – starko

    +0

    @starko - 未来を予測しようとしないでください。あなたが後でそれにアクセスする必要があるかもしれないので余分な仕事をすることは、あなたのコードベースをどのくらい複雑にするかを決定する危険な方法です。ここで単純なことに固執し、別のDBインスタンスを作成してください。現実的には、コードがすでに適切であれば、別のデータソースを設定するだけでよく、これは簡単なことです。 – rfeak

    関連する問題