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