复合(主)键如何在Sync Framework中作为外键使用?

时间:2014-04-13 17:31:53

标签: microsoft-sync-framework

我目前正致力于重新设计我的数据库以使用Sync Framework。根据我到目前为止阅读的文章,我的主键是身份类型会导致同步冲突。因此,我决定添加一个名为ClientId(int type)的列,以便我可以将该新列和我现有的主键列作为复合主键。

此ClientId将用于标识哪个客户端/节点是数据源,从而解决了同步期间的数据冲突问题。但是,我在引用复合外键时如何重构表格时非常困惑,而且我还需要引用表上的客户端ID。这是示例布局(这是一对多):

评估表(主要交易表):

  • AssessmentId(PK,identity,int)
  • 描述(varchar)
  • AssessedValue(十进制)

调整表(中间,交易表)

  • AdjustmentId(PK,identity,int)
  • AssessmentId(FK,int)
  • AdjustmentDescription(varchar)

这是我在实现复合键时所做的:

评估表(主要交易表):

  • AssessmentId(复合,PK,身份,整数)
  • ClientId(复合PK,int)
  • 描述(varchar)
  • AssessedValue(十进制)

调整表(中间,交易表)

  • AdjustmentId(复合PK,身份,整数)
  • ClientId(复合PK,FK,int) - 它是一个引用评估表的FK, 同时在这张桌子上复合PK的一部分..我在这里利用ClientId
  • AssessmentId(FK,int)
  • AdjustmentDescription(varchar)

我这样做是否正确?或者我应该创建另一个ClientId for Adjustment表作为自己的复合键,然后为Assessment表的FK ClientId创建一列?

感谢您的帮助(对不起令人困惑的英语感到抱歉)!

目前使用:SQL Server 2008 R2
Sync Framework:ver 2.1

0 个答案:

没有答案