如果最多可以有5个不同的角色,那么为用户表使用嵌入式文档roles
字段是否可行?我问这个的原因是因为我认为对该字段使用数组类型会做同样的事情。我唯一一次使用角色字段是为了检查用户是否能够访问网站上的某些页面/功能。我在这里错过了什么吗?感谢
答案 0 :(得分:0)
我认为这两种方法都不正确,我认为这与您希望模型的外观比存储数据的方式更相关。它实际上只取决于您希望持久保存的角色类型以及计划如何检查用户角色的信息(如果有)。
如果您只想存储角色列表(管理员,用户,管理员等),那么序列化数组属性可能就好了。另一方面,如果您的角色中存储了更多信息(例如,为每个角色授予了操作或权限),则单独构建UserRole
模型并将其嵌入User
中可能会有所帮助。模型。
如果您只是存储一个角色列表,其中每个用户可以是一个或多个角色的成员,那么实际上还有另一个非常好的选择。你实际上我们可以使用bitmask。使用这种方法,您的用户角色将存储为一个简单的整数,您可以使用某些ruby的按位运算符将该值映射到一组角色。
http://railscasts.com/episodes/189-embedded-association?view=asciicast