mysql - 异或约束

标签 mysql

在准备关系模型期间,我陷入了类型约束 {XOR} 的转换。

这是一个例子: 我有一个与申请人(用户)同等信用的文件 并且它也由验证者(另一个用户)验证 但有一个排除限制,申请者不能是同一文件夹的验证者。

如何在我的 table 上翻译它?

Dossier_Equi (num_dosier, # applicant # validator ......)

enter image description here

最佳答案

首先,请注意,它不是类型约束(即两个分类器之间的约束),而是关联约束。然后,请注意 the xor constraint specifies that objects of a class may participate in, at most, one of the associations at a time .

约束:

The applicant must not be the validator.

等效的 SQL 是:

CHECK (validator IS NULL OR applicant<>validator) 

(作为表约束,因为它适用于不同的列)。

但是,MySQL 不支持 SQL 检查约束。另一个问题中有a suggerence for using BEFORE INSERT/UPDATE triggers为此目的。

关于mysql - 异或约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15760303/

相关文章:

mysql - SQL 表中的 Tkinter 下拉菜单

mysql - mySQL 中的分层数据应该如何构建

mysql - 存在 NULL 条目的分组依据

mysql - Deaggrigate 然后应用 With Rollup

php - MySQL 记住最后一个位置

mysql - 如何在 Kubernetes 中使用 PersistentVolume 存储 MySQL 数据

mysql - Travis 构建失败,并出现错误 LOAD DATA LOCAL INFILE 文件请求因访问限制而被拒绝

php - Laravel 5.4 - 在同一数据库中将数据从一个表复制到另一个表

php - Mediawiki,更改密码后无法登录

MySQL:M:N 关系的子集和超集