我有一个代表用户及其名称和角色的集合,其中角色可以是admin,user或guest(假设每个用户有一个角色)。基本上我是mongodb的新手。我在关系数据库中要做的是保留两个链接表,一个用于用户,一个用于角色。我不确定在mongodb中处理这个问题的最佳方法是什么。例如,我的收藏品应该如此吗?
{ {"name": "John", role: "admin"}, {"name": "Jack", role: "user"} }
在这种情况下,如果我在其中一个角色中输入了拼写错误,那么我将不得不更新具有该角色的所有用户。你会建议什么方案?
答案 0 :(得分:0)
是的,这是最好的方法,如果你想更改角色名称,你必须更新集合中的所有项目,但它只是一个命令。
对于需要添加表格的单个用户,还有一些好处,如下所示:
{ {"name": "John", roles: ["admin","user"]}, {"name": "Jack", roles: ["user"]} }
但是如果角色部分开始增长,有一些访问权限,有可能在用户之间共享相同权限等。你也可以创建一个带有角色的第二个表,并且juste引用用户表中的id ,就像SQL中的连接一样
答案 1 :(得分:0)
@ tomsoft的解决方案很棒。
我给你一些建议:当你有多个枚举时,引用"枚举"像一个清单。我这样做容易得多。
另一个例子: 车辆是一个枚举:你可以有摩托车,踏板车,汽车,卡车......
但是你必须对原子枚举保持警惕,比如喜欢的水果: [香蕉,苹果,桃子,葡萄]你只需要选择一个!