小编Jer*_*wer的帖子

外键和检查约束的完整性

我正在构建一个系统,该系统是用于存储来自许多其他系统的数据的中央存储库.更新其他系统数据时,需要同步过程来更新中央存储库.将有一个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)

我想知道在确定完整性约束,外键和检查约束之间确定哪种因素是更好的方法.有类似的线程,但我没有找到它们的确定性.这可能是因为它的解释,但任何想法将不胜感激.

干杯

database-design referential-integrity constraints

11
推荐指数
1
解决办法
6119
查看次数