我目前有以下表格
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?或者有人知道我可以实现这种期望的同步的替代方法。
答案 0 :(得分:0)
Guids肯定适用于您描述的问题,但是,当两个用户将Boston添加到他们的数据库时会发生什么?你最终会得到大量的重复 - 特别是在普通城市。
您是否可以使用城市信息预先填充数据库?