我目前有以下表格
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
用户2:
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 吗?或者有谁知道我可以实现这种所需同步的替代方法。