我一直在寻找有关如何使用用户 Angular 色制作典型网站 MVC 权限系统的教程。
我已经使用 SQL 和关系完成了这些事情,但在 nosql 数据库中,它的做法不同(我假设)。
我的想法是这样的
//Role objects
{Roles : [
{
'_id' : 'uniqueId',
'role_name' : 'admin',
'permissions_granted' : [array of permission strings]
},
{
'_id' : 'uniqueId',
'role_name' : 'user',
'permissions_granted' : [array of permission strings]
},
{
'_id' : 'uniqueId',
'role_name' : 'guest',
'permissions_granted' : [array of permission strings]
}
]}
//User objects
{Users: [
{
'_id' : 'uniqueId',
'username' : 'mike',
'password' : 'mypass',
'permissions' : [an instance of role group, or its id ? ]
},
{
'_id' : 'uniqueId',
'username' : 'jonny',
'password' : '123',
'permissions' : [???]
}
]}
我怎样才能进行单个查询来获取用户数据 + 其权限? 使用 2 个查询是否有缺点,一个是获取用户的 Angular 色 ID,然后从 Angular 色文档中获取权限。 ? 在 mongodb 等 nosql 数据库中如何处理用户权限
最佳答案
您应该使用 ID 而不是对象本身。这样您就可以轻松更新所有内容。如果您有一个场景,当您经常读取权限并且很少写入(我假设)时,您可以另外存储 Angular 色 ID 以及用户的实际权限(基于其 Angular 色)
但是,每次更新 Angular 色时,您都需要更新这些权限。但是在查询用户时,您会立即获得 Angular 色,这比使用 2 个单独的查询要快得多。
关于javascript - 如何在 mongodb/nosql 中创建用户角色和权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18616625/