gpt4 book ai didi

java - 在 nosql 环境中对用户信息建模的正确方法是什么

转载 作者:行者123 更新时间:2023-12-01 19:19:30 24 4
gpt4 key购买 nike

过去 10 年里我一直在使用关系数据库,摆脱关系模型是一个相当大的挑战。我开始阅读有关查询优先方法的内容,现在我明白了,尝试用图表来说明这是完全不同的。这就是我的问题:我有用户和角色。因此,用户可以拥有各种角色,也可以没有角色。因此,我将角色存储在不同的数据库上。
使用 nosql 建模时,没有连接,因此,一种方法是让用户在表单中存储他管理的角色

用户表:{ id:..., name: 'Pedro Zuppelli', 角色: [ {id:...,name: 'user'}, {id:..., name: 'admin'}]}

角色表:{id:..., name:'用户'}

但是,如果角色表中的角色名称被更新,会发生什么情况?这不会在用户中被修改。

此外,在查询优先方法中,如果我想知道哪些用户具有哪些角色,我将创建一个 UserByRole 表。现在,当用户失去角色时,我不仅需要更新用户表,还需要更新 userByRole 表。如果角色更改名称,则需要更新角色表、UserByRole 和 User 表。是否应该在服务层以编程方式完成,或者例如 Spring Data 知道如何处理它?<​​/p>

任何涵盖此内容的书籍或具有复杂数据映射的代码示例的链接都将受到极大的赞赏,我已经浏览了一堆教程、视频等,它们都管理着简单的关系。

谢谢!

最佳答案

NoSQL 建议嵌入角色并映射对象来获取角色列表。

{
"type": "User",
"roles": ["admin", "sudo", "wheel"]
}

当您需要更改某些角色名称时 - 查询所有对象并更新。

另一种选择是使用具有集成查询语言的东西,例如 N1QL(JOIN、UPDATE、DELETE)并用它来模仿关系数据库。

关于java - 在 nosql 环境中对用户信息建模的正确方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59376289/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com