我们在Cosmos Db中有两组独立的文档,一组存储用户及其各种角色,另一组文档存储特定作业的权限。
现在,工作清单无限制,并且可以在一段时间内大幅增长。由于不允许在多个文档中使用分组,我们正在尝试找出实现基于角色或特定作业检索所有用户的方法的最佳策略。
1)解决方案1 - 将用户数据和作业数据作为子文档保存在一个很长的文档中,有助于查询甚至延续令牌。
2)解决方案2 - 将用户和角色数据分别保存在1个文档和多个作业文档中,并在客户端进行查询并在那里执行查询。在这种情况下,延续令牌支持将丢失,因为您必须首先查询完整数据以提供任何有意义的结果。
3)解决方案3 - 保留每个作业文档的角色数据并直接查询。在这种情况下,我们将根据作业获得用户数量,然后使单个查询/用户获取他们的信息。
任何人都可以推荐一个更好的解决方案,或从3以上选择并建议前进的道路吗?
答案 0 :(得分:0)
您似乎需要额外的存储来存储关系。我们可以使用Azure SQL来存储用户(documentId,用户ID,角色ID),角色,作业的关系。然后将诸如useinfo之类的属性信息存储到Documentdb中。