带有/或外键的数据库

时间:2014-10-21 14:13:33

标签: database database-design foreign-keys

我有下表,其中有lDeviceIDmDeviceID作为外键,但不是两者。处理这个问题的最佳方法是什么?将字段nullable设为足够吗?

eventID是主键。

Event(eventID, timeStamp, data, support, lDeviceID*, mDeviceID*)

1 个答案:

答案 0 :(得分:0)

是。如果两个FK列可以为空,则必须输入有效的FK或null。但是,这并不能处理您尝试放入两者或两者都没有的情况。强制执行该操作的唯一方法是创建一个Insert / Update触发器,该触发器验证一个是null但不是两个并且引发异常是验证失败。