RavenDb NoSQL 多对多建模

RavenDb NoSQL many to many modeling

我是 NoSQL 数据库 (RavenDb) 的新手,我想知道哪种是对以下情况建模的最佳方法:

我正在做一个医疗咨询预约日历。根据医学专业和咨询类型(第一次或随后),有几种类型的医疗咨询。 因此,例如,心脏病学的第一次医疗咨询需要 30 分钟,随后的咨询需要 15 分钟。每个专业都有其持续时间。

当有一些医生的就诊时间与一般医生不同时,问题就来了。所以,通常情况下,第一次心脏病科会诊需要 30 分钟,但当医生是 John the Rapid 时,只需 20 分钟。

对于这种情况,我们过去曾与这些罕见的医生进行过 table 相关的咨询类型,其中有特殊的持续时间。所以我们用这个 table 做了一个左连接,如果有这种类型的咨询和选择的医生的记录,我们在这个 table 中应用时间。如果没有记录,我们取咨询类型的标准值。

我应该继续使用这种方法并查询另一个集合以查看是否有不同的时间,还是将此信息包含在咨询类型集合中更好?

为什么不简单地创建一个 'Doctors' 集合,其中每个文档都可以像这样:

{ 
    "Name": "John the Rapid",
    "speciality": "Cardiaology",
    "FirstConsultationTime": "20",
    "SecondConsultationTime": "10",
    .....
}

就是这样。

可选择地,对于 'regular' 医生, 您可以在这个 same 集合中创建更瘦的文档,如下所示:

{ 
    "Name": "Some other name",
    "speciality": "Cardiaology",
    .....
}

并且当您查询医生时,
如果 'time' 字段不存在,那么您使用一些默认值(30 分钟和 15 分钟)...

您可能想阅读: https://ravendb.net/learn/inside-ravendb-book/reader/4.0/3-document-modeling#document-modeling