我正在使用java
作为我的数据库开发MongoDB
网络应用程序
在对我的数据对象进行建模时,我想知道何时应该使用Map
以及何时创建另一个对象。
例如,我们说我有一个包含角色的User
和一个Role
模型。
我可以用包含Map <String, Role>
或角色列表的方式编写用户。
user: {
roles: {
admin: {
key1: value,
key2: value
},
...
}
}
user: {
roles: [{
id: admin,
key1: value,
key2: value
},
...
}
虽然第一种方式似乎更适合客户端访问角色(user.role.admin),但我倾向于选择第二种解决方案,因为它可以更容易扩展,我可以避免疯狂的嵌套map
s比如<String, Map<String, Map<String, MyModel>>>
我应该如何建模我的数据,何时我的模型应包含Map
s?