【发布时间】:2015-01-30 15:03:24
【问题描述】:
我在用户表中有一个列作为 IsAdmin 位。一次只能有一个人管理员。因此,我想要的是约束表以将所有其他用户 IsAdmin 值设置为 false 将一个用户设置为 true?我可以通过将所有用户设置为 false 来实现这一点,但我只是想知道是否已经有一些东西可以处理这些场景。我感谢您的帮助。
【问题讨论】:
-
首先将所有用户设置为 false 可能更容易,但如果您想走更复杂的路径,您可以使用触发器来处理。 sqlteam.com/article/an-introduction-to-triggers-part-i
-
您可以有一个(伪)约束来强制(最多一个)用户设置了
IsAdmin,但约束不会对数据进行更改 - 甚至不会在当前正在考虑的行中,更不用说其他行了。 -
我实际上期待有更好的方法来做到这一点。似乎首先将所有值设置为 false,然后将一个设置为 true 是完成这项工作的最简单方法吗?
-
顺便说一句,我正在使用实体框架。所以我可以创建一种方法来完成我相信的这项工作。我只是想知道是否有更好的方法来解决这些类型的问题。
-
如果只添加另一个表
tblAdmins和user_id字段和一行,那么您只需更新此表即可更改管理员?
标签: c# sql sql-server