0

我正在使用 CanCan 为 RBAC 开发 Rails 应用程序,我只有 3 个角色,也许我会在某个地方再添加 1 或 2 个角色。

过去,我一直将角色作为自己的实体,通过 m2m 链接表加入用户。有这么少的静态角色,这似乎有点矫枉过正。所以我想简单地为每个角色添加布尔列到我的用户表中。我也可以使用位掩码(就像 CanCan 示例一样),但我不太热衷于在单个列中存储多个值。

所以我的问题是,在这种情况下最好的做法是什么:位掩码、多个布尔列或正确规范化的 m2m 关系?

4

1 回答 1

1

按照 YAGNI 的原则操作将促使我决定为每个角色使用单独的位列。即使随着时间的推移添加更多列,它仍然比 m2m 链接表更容易管理。我完全同意不使用位掩码,因为它们会掩盖数据的含义。

我只是从 SQL 方面解决这个问题,因为我没有使用 Rails、CanCan 或 RBAC 的经验。

于 2010-11-01T04:55:08.963 回答