Mongodb Mongoid关系属性
保存关系属性的最佳方法是什么?例如,我有模型Person和Project(M:N关系)。我想在项目中保存人员角色。在关系数据库中,它将是连接表person\u项目中的一个属性。在Mongoid(RoR)中实现这一点的最佳方式是什么 第二个问题:我应该在两侧或一侧保存多对多关系的ID吗?文档:Mongodb Mongoid关系属性,mongodb,mongoid,Mongodb,Mongoid,保存关系属性的最佳方法是什么?例如,我有模型Person和Project(M:N关系)。我想在项目中保存人员角色。在关系数据库中,它将是连接表person\u项目中的一个属性。在Mongoid(RoR)中实现这一点的最佳方式是什么 第二个问题:我应该在两侧或一侧保存多对多关系的ID吗?文档: Mongoid使用数组在两个集合中存储IDPersoncollection有一个字段project\u id,projectcollection有一个字段Person\u id,我不会在project中存储
Mongoid使用数组在两个集合中存储ID
Person
collection有一个字段project\u id
,project
collection有一个字段Person\u id
,我不会在project中存储用户或特定用户角色(超级用户除外,或出于最终的缓存原因)。因为有两个生命周期,当你做项目的时候,你可能不会和用户混在一起。
因此,首先,我会将角色设置存储在以下人员中:
{
_id : Obj{},
projects : [
{project_one : role_name}, //use a name if name is unique if not use project_id as key
{project_two : role_name}
]
}
或者更容易,但需要更多的空间
{
_id : Obj{},
projects : [
{project_id : project_one,
role : role_name},...
]
}
即使您可以在项目中存储一些与用户相关的内容,我也会根据用户测试角色。请仔细阅读。我没有问如何构建M:N关系,而是问在哪里保存此关系的“role”属性。
{
_id : Obj{},
projects : [
{project_id : project_one,
role : role_name},...
]
}