【发布时间】:2018-12-06 06:03:00
【问题描述】:
如果其中一个设置为 true,是否有办法自动将其他数据库字段设置为 false?
例如:
User
----
admin
is_super_admin
is_coach_admin
用户只能是上述值之一。如果我将管理员设置为 true,我希望将 is_super_admin 和 is_coach_admin 自动设置为 false。我的意思是,不要在后端设置。有办法吗?至少,最适合 symfony 学说:)
【问题讨论】:
-
您可以为数据库中的字段定义默认值。将所有设置为 false (0)。
-
是的,但我的意思是,如果我将管理员设置为 true,则无法将 is_super_admin 或 is_coach_admin 字段设置为 true。有这样的方法吗?将这些值相互依赖?
-
你想在前端做吗?我的意思是,当一个复选框被设置时,另一个应该被禁用?
-
您可以在更新表时使用代码轻松完成此操作,或者您可以在 MySQL 中为处理它的表创建一个 trigger。
-
是的。我建议您创建一个包含角色的“角色”表。然后,您只需在用户上设置角色的 ID。然后,用户将无法拥有多个角色,并且如果您添加更多角色,则无需更改表。但是,我会考虑为此使用一些库,因为您可能会意识到您还需要组、对访问权限的细粒度控制等,这很快就会变得非常复杂。