【发布时间】:2012-03-11 19:47:27
【问题描述】:
我正在创建我的实体的文档模型以存储在文档数据库 (RavenDB) 中。我正在建模的领域围绕Incidents。事件具有来源、优先级、类别、影响级别和许多其他分类属性。在 RDBMS 中,我有一个 Incident 表,其中包含 Priorities 表、Categories 表、Impacts 表等的外键,但我不知道如何在文档数据库中处理它(这是我的第一个 Doc BD)。
我有两种参考数据:
简单查找值:
Countries、States、Sources、Languages。属性:它们只有一个名称,但这是一个多语言系统,因此每种语言都有名称。支持的操作:创建、删除、重命名、停用和合并。复杂参考数据:与简单查找相同,加:其中一些具有许多字段,并具有自己的业务规则和验证规则。例如,两个
Priorities不能具有相同的Rank值。有些具有更复杂的结构,例如Categories由Subcategories组成。
我应该如何将它们建模为(或作为其中的一部分)文档?
PS:文档数据库建模指南的链接也将不胜感激
【问题讨论】:
-
我猜
categories和subcategories,看你是否需要直接调用subcategories。面向文档的数据库的一般思想是将子类别存储为字典(作为树)。但是你只能直接阅读第一级,其余的必须使用 map-reduce 完成。至于多语言系统:这可能是字典的情况,这次使用语言代码(de_DE或 @987654335 @) 作为键。但不确定这是否是最好的解决方案,也许你比我更喜欢 doc-db。 -
我刚刚发现的,这里 Zuelke 展示了如何通过 map-reduce 获取参考数据(以下第 41 页)。也许这也很有趣:slideshare.net/Wombert/…
标签: nosql ravendb document-database