私は現在次のテーブルを持っています
Nation
----------------
Id (int) primary key autoincrement
Name (char)
City
----------------
Id (int) primary key autoincrement
NationId (int) references Nation(Id)
Name (char)
Nation table data
Id Name
----------
0 England
1 USA
City table data
Id NationId Name
-----------------------
0 0 London
1 0 Manchester
2 1 New York
3 1 Boston
上記は、アプリケーションのユーザーに再配布したいデータベースの一部です。
私のアプリケーションのユーザーは、自分の国や都市を追加することができます。現在のデータベース設計に従って、独自の都市を追加すると、City.Idの主キー値が明らかに増加します。
ただし、ある段階で、ユーザーがお互いのデータベースから国/都市を「プッシュ」または「プル」できるようにしたいと思います。例えば。User1は、彼の都市テーブルに追加の値を持っています。
Id NationId Name
-----------------------
4 1 California
5 1 Chicago
User2の都市テーブルには次のものがあります。
Id NationId Name
-----------------------
4 1 Houston
5 1 Phoenix
それぞれが自分の都市テーブルにお互いの都市を入れたいと思っています。それぞれが異なる都市データをプッシュすると、City.Id、City.Name属性は完全には対応しなくなります。
ユーザー1:
Id NationId Name
-----------------------
0 0 London
1 0 Manchester
2 1 New York
3 1 Boston
4 1 California
5 1 Chicago
6 1 Houston
7 1 Phoenix
User2:
Id NationId Name
-----------------------
0 0 London
1 0 Manchester
2 1 New York
3 1 Boston
4 1 Houston
5 1 Phoenix
6 1 California
7 1 Chicago
すべてのユーザーデータベースで同じように見えるように、City.Id、City.Name属性を使用したいと思います。
では、City.IdのGUIDを使用する必要がありますか?または、私がこの望ましい同期を実現できる代替方法を知っている人はいますか。