nosql - RavenDB 中的关系数据库删除概念

标签 nosql ravendb

我是 Raven DB 的新手,也是 No SQL DB 概念的新手。我试图摆脱 RDB 附带的一些概念。曾经的概念是,如果某个记录在某处用作外键,则 RDB 不会让我删除主记录。

假设我不想删除一个类别并且该类别的 ID 正在某些产品中使用,那么 RDB 不会让我删除该记录。这非常有用,因为我不必担心意外删除记录。如何将相同的概念应用于 Raven DB?我想使用像 RDB 这样的规范化结构,因为我计划将 Raven DB 与一些 RDB 结合使用。我想保持安全,以防万一,这样我就不会因为尝试新概念而陷入困惑。

希望我说得有道理,

任何帮助将不胜感激!

最佳答案

RavenDB 中没有外键约束这样的概念。真的,没有外键。您在文档中所拥有的只是一个字符串,可用于获取另一个文档。我们称之为关系,但它是一个松散的术语。没有什么可以将这些文档链接在一起并阻止您进行删除操作。

在您描述的场景中,您仍然可以加载产品。但是,如果您尝试使用该产品的类别 ID 加载类别,则会得到一个空值。

你必须自己维护这些关系。唯一可用的帮助程序是 Cascade Delete Bundle - 但您仍然必须连接每个实体以进行级联。它不会像使用基于 sql 外键的级联删除那样自动执行。

关于nosql - RavenDB 中的关系数据库删除概念,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14276274/

相关文章:

c# - RavenDB - 当我想要引用另一个根聚合时

c# - RavenDB 快速子串搜索

mongodb - 基于正则表达式排除 Mongo 字段

nosql - 选择 noSQL - 可用性优先

ravendb - 按实体名称和上次修改日期搜索

c# - RavenDB 加载相关数据不起作用

c# - 如何对 IRepository 进行单元测试?

mysql - OpenStack Nova 切换到 Cassandra —— 优点和缺点?

数据库:具有 NoSQL/文档数据库 (DDD) 的存储库

javascript - MongoDB - 仅在嵌套数组中存在时更新所有条目