我以倍数表为例:
警报表(id为PK身份,其他列为每个表不同)
AlarmLog表(id为PK身份,AlarmID,UserID,TypeAlarmID)
表alarm1,alarm2和alarm3的id是登录alarmLog(id,AlarmID,UserID,TypeAlarmID)
可以在AlarmLog表上添加一个外键,该外键引用多个报警表的每个alarmID吗?
问题很简单,这个TSQL工作正常,并在这种情况下返回alarm1表:
Select * From AlarmLog
Inner join alarm1 on AlarmLog.AlarmID = alarm1.id
Inner join Users on Users.id = AlarmLog.UserID
Inner Join TypeAlarm on TypeAlarm.id = AlarmLog.TypeAlarmID
但我想删除上面的T-SQL之类的存储过程,并从实体框架中获取它。
如果你拿到外键那么简单!
答案 0 :(得分:1)
不,不可能有一个列指向其他三个表。外键将创建强大的一致性检查,并且数据需要存在于三个表中。
唯一的解决方案是在Insert和Delete语句上使用触发器自动执行所需的一致性检查和级联,而无需外键。