所以我在业余时间里拥有这个卑鄙的项目。现在,我正在设置用户和房间,并且对进一步发展有些犹豫,因为我不确定DB的适当协议。
我记得,您不应该有多一的人际关系;相反,您应该有一个关系表。
现在,我的用户模式有一系列他所在的房间,而我的房间模式有很多用户(第三个也是最后一个模式是消息(。
最好拥有一个拥有PK,一个房间的ID,然后在此房间中的所有用户列表?
的列表更好吗?谢谢rasmus
mongoDB不是像 *sql数据库(因此称为nosql(这样的关系数据库,因此在mongo中,使用关系表的使用效率相当低。如果您不想要重复数据,则在房间集合中握住用户_id的数组大致是理想的。
这里有一些在Mongodb中多到多的深入答案。
用户如何在一个以上的房间中?那不仅仅是用户上的属性吗?如果索引,为什么还需要将其存储在房间里?
没有一种正确的方法,这实际上取决于您拥有多少个对象,如果它是一个很小的数字(正如房间和用户所暗示的那样(,您可能会更简单,更强大(无法存储不可能的值(会更好方法是在用户RoomId
上拥有一个属性。这永远不会是不一致的,如果您需要在给定的房间中找到一组用户,那是一个便宜的查询。
在mongodb中,您可以在包含零件或所有其他对象的每个对象上构成数据规范,但是如果您愿意,也可以创建一个有效的加入集合。
例如,您可以使用适当的索引{userId,roomId,dateTementeref,datetimeleft} collection {userId,roomId,dateTementerfe,dateTimeleft},可让您在给定时间快速在给定的房间中快速找到所有用户。拥有一组ID后,您可以加载它们,如果需要显示它们,或者您可以将显示的字段添加到此表{userId,username,...},但是您有一个问题,即维护该数据如果您需要知道,如果您需要知道,当他们进入所谓的房间时。
关于stackoverflow的其他问题与您应该如何存储相关数据有关,我建议您也要阅读这些问题。