1

データベースの種類は MSSQL です。ウェブサイトの技術はPHPです。

シナリオ: オフィスに 1 つのマスター データベースがあります。それは 2 回複製され、世界中の 2 つの異なるイベントに送られます。複製された両方のデータベースで、データが変更され、新しいデータが追加され、一部のデータが削除されます。

イベントが終了し、複製されたデータベースの両方がオフィスに戻ってきます。私の仕事は、データベースを 1 つのマスター データベースにマージすることです。

私が理解していること:

  1. 両方のクローンで同じ行のデータが変更された場合、どちらを取るかを決定するために (人間による) 決定を行う必要があります。

  2. このマスター、クローン、およびマスターへの復帰はよくあることです。

  3. 多くのテーブルがあるため、内部には多くの参照があります。参照元が保持するマスター データベースにデータが挿入されるタイミングを確認する必要があります。

この状況に対処する方法について、いくつかの推奨事項を得ることができますか?

*さまざまなイベントの場所がマスター データベースに直接アクセスできるようにすることは、私が持っている贅沢ではありません。各イベントはオフラインであると想定する必要があります。

4

2 に答える 2

0

これはまさに、Merge-Replication が処理するように設計されたタイプの状況です。こちらの記事シリーズをご覧ください: SQL Server レプリケーションへの階段

于 2012-10-11T21:07:19.597 に答える
0

これは、データベースを送信する前に尋ねるべきタイプの質問です。

確認する必要がある主な考慮事項の 1 つは、プライマリ id データ型です。自動インクリメント整数よりも GUID を使用することをお勧めします。これは、2 つのデータベースで作成された新しいレコードが ID を共有しないためです。これにより、あなたの人生はかなり楽になります。

データベースを送信する前に確認すべきもう 1 つの点は、すべての行にタイムスタンプ列が含まれていることです。これにより、生活もかなり楽になります。

GUID とタイムスタンプを使用して、2 ~ 3 のデータベースにわたってテーブル内の変更されたすべてのレコードを見つけるのは簡単なことです。

GUID を使用して、複数のデータベースにまたがるテーブル内のすべての新しいレコードを見つけるのは簡単なことです。

于 2012-10-11T23:09:15.493 に答える