我正在构建一个系统,它是一个中央存储库,用于存储来自许多其他系统的数据。当其他系统数据更新时,需要同步过程来更新中央存储库。将有一个 sync_action 表来标识中央存储库需要与哪个系统同步以及所需的同步类型。有一组定义的操作不太可能改变。下面是一个精简的系统。
正如我所看到的,我可以通过两种方式解决这个问题:
选项 1 ) 有一个Action
表,其中包含 3 个可用的操作。有一个sync_action
使用外键引用所需操作的表。
表:系统
ID Description
1 Slave System 1
2 Slave System 2
表:行动
ID Description
1 Insert
2 Update
3 Delete
表:Sync_action
ID Action System
1 1 1
2 2 1
选项 2)而不是外键使用sync_action.action
列上的检查约束,因此只能Insert/Update/Delete
插入操作。
表:Sync_action
ID Action System
1 Insert 1
2 Update 1
我想知道在决定完整性约束、外键与检查约束之间时,哪些因素会决定哪种方法更好。有类似的线程,但我没有发现它们足够明确。这可能是因为它取决于解释,但任何想法都会受到赞赏。
干杯