是否可以将多个客户端表同步到一个服务器表?我看到的主键在多个客户端中重复出现的问题。有没有解决的办法?
我试图在没有主键的情况下进行同步,但是似乎同步框架需要一个键才能使其工作。
还是我最好的选择是在服务器上创建多个表,然后创建一个视图以合并没有主键列的数据?
答案 0 :(得分:1)
避免重复的一种简单方法是使用:
自然键与自动生成的数字不同:它通常是您要存储的“事物”的固有属性。想想像汽车上的车牌。
使用此属性,可以确保当您拥有此键时,您具有相同的记录。
请记住,即使有车牌,也总是会有一些例外。
就目前而言:
您也许可以删除insert identity
,然后重新分配一些数字。但这将破坏PK服务器/客户端的关系(您的服务器将具有与客户端完全不同的PK)。随着时间的流逝,这可能会让您头疼。
使用您的PK
,但添加一列,例如ClientID
或ClientLocation
,从两者创建复合PK(不确定自动编号是否会接受)。这可能是最简单的选择。
对于后者,在此示例中,您可以看到组合键是唯一的:
//Client 1)
|---composite PK---|
| ID | ClientID |
|------|-----------|
1 cust1
2 cust1
3 cust1
//etc
//Client 2)
|---composite PK---|
| ID | ClientID |
|------|-----------|
1 cust2
2 cust2
3 cust2
//etc
//Server)
|---composite PK---|
| ID | ClientID |
|------|-----------|
1 cust1
1 cust2
2 cust1
2 cust2
3 cust1
//etc