0

我目前有以下表格

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 吗?或者有谁知道我可以实现这种所需同步的替代方法。

4

1 回答 1

0

指南当然可以解决您描述的问题,但是,当两个用户将波士顿添加到他们的数据库时会发生什么?你最终会得到大量的重复——尤其是在普通城市。

你不能用城市信息预先填充数据库吗?

于 2011-04-24T16:23:08.530 回答