0

私たちは、すべてのソフトウェア製品のあらゆる種類の記録を保持するデータベースを持っています。一部のレコードは特定のソフトウェア用であり、一部のレコードは別のソフトウェアで共有されています。
別のチームがデータベースをロック、編集、更新します。
別のソフトウェアをリリースするときは、この単一の大きなデータベースを取得して、ソフトウェアと共にリリースします。

問題は次のとおりです。

  • データベースは大きくなる可能性があり、すべてのソフトウェア製品のすべてのレコードを保持しているため、1 つのソフトウェアに不要な情報が含まれています。
  • 編集しているデータベースが最新のものではない可能性があります。変更により、他のソフトウェアなどが壊れる可能性があります...

この種の問題の通常の解決策は何だろうと思っています。私が考えることができる解決策は次のとおりです。

  1. マザー データベースを保持し、さまざまなソフトウェアの子データベースを生成します。
    別のチームは、Web インターフェイスを使用してマザー データベースにレコードを追加し、リリース時に、必要なテーブルをマザー データベースから基本的にコピーし、リリース用の新しいデータベースを作成するタスクを実行できます。
  2. マザー データベースは使用しないでください。異なるソフトウェアは異なるデータベースを使用します。しかし、共有されたレコードをどのように扱うのでしょうか?
4

1 に答える 1

0

私はあなたの最初のアプローチに行きます。皆さんの回答を読む前に思ったことです。「マザー」データベースを持つ利点は、すべてのソフトウェア製品を同じスキーマに準拠させることができることです。必要に応じて、それらはすべて同じテンプレートを共有します。

次に、あなたが言ったように、リリースの準備ができたら、プロセスを実行すると、コンパクトなバージョンのデータベースが生成され、出荷の準備が整います。

スキーマが更新されるため、オプション 2 はお勧めできません。これは、コードベースのフォークと概念が非常に似ています。コードベースを 10 回フォークすると、バグ修正が入ったときに 10 か所に行って修正してリリースする必要があります。

また、マザー データベースが 1 つあれば、すべてのデータベースに対して簡単にクエリを実行できることも考慮してください。「リリースはいくつありますか?製品はいくつありますか?最後にリリースした製品は何ですか?」

データベースを分割すると、そのようなクエリを作成するのがはるかに難しくなります。

于 2013-03-14T22:40:30.033 に答える