我有下表,其中有lDeviceID
或mDeviceID
作为外键,但不是两者。处理这个问题的最佳方法是什么?将字段nullable
设为足够吗?
eventID
是主键。
Event(eventID, timeStamp, data, support, lDeviceID*, mDeviceID*)
答案 0 :(得分:0)
是。如果两个FK列可以为空,则必须输入有效的FK或null。但是,这并不能处理您尝试放入两者或两者都没有的情况。强制执行该操作的唯一方法是创建一个Insert / Update触发器,该触发器验证一个是null但不是两个并且引发异常是验证失败。