【发布时间】:2016-03-29 21:26:29
【问题描述】:
这是我的第一篇文章,我是一个 mysql 菜鸟,所以对于这个问题的长度,我深表歉意。
背景
我有一个查找表cctypevals,带有一个外部字段“cctypeID”,在 mysql 中这将是:
CREATE TABLE `cctypevals` (
`cctypevalsKEY` integer NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`cctypeID` varchar(50) NOT NULL, FOREIGN KEY(cctypeID) REFERENCES cctype(cctypeID) ,
`value` varchar(50) )
cctypeID 包含来自用户表的字段名称,例如“taskSTATE”、“serviceTYPE”、“projectCAT”等。
值字段包含这些用户表字段的唯一允许值。
因此cctypevals 就像一个“多”键查找表,例如:
从 cctypevals 中选择值,其中 cctypeID ='serviceTYPE'
可能会返回 HomeVisit、BackToBase 等
我知道每个字段有一个查找表会更容易,但这就是我所拥有的。
问题
我如何约束(在 sql create table 或 alter 语句中)具有诸如 task.taskSTATE、service.serviceTYPE 等字段的表,以便它们只能接受来自 cctypevals.value 的值,其中 cctypeID 包含合适的字段名?
【问题讨论】: