在DB文档中,每个集合应该有一个实体吗?
考虑到我在下图中有外键关系:

我应该创建两个集合,一个用于员工,另一个用于公司。或者我应该把它们储存在一个单一的收藏中?
我读过here,在documentdb中,存储过程的作用域、触发器等都在集合中。因此,通过将不同的实体分割到单独的集合中,我就失去了开箱即用的功能。
因此,最好将这两个类转储为单个实体,如下所示:
{
"Id": 1001,
"Industry": "Software",
"Employees": [
{
"Id": 10011,
"Name": "John Doe",
"CompanyId": 1001
},
{
"Id": 10012,
"Name": "Jane Doe",
"CompanyId": 1001
}
]
}在DocumentDB中实现相关实体的标准实践是什么?
发布于 2014-12-13 15:04:59
你的问题有点主观,因为你要求的是实体设计,对此,没有一个正确的答案。
但是:从更客观的角度来看:没有什么可以阻止您在集合中拥有多个实体类型(例如,Company文档类型和Employee文档类型,在您的例子中)。
您需要自己包含某种类型的提示(可能是type属性),以帮助在运行查询时区分这两种提示。但是,通过将这两种类型都包含在同一个集合中,现在可以在其中使用集合范围。关于type属性:由于DocumentDB默认对所有属性进行索引,所以type属性很容易集成到查询中。
编辑删除了大约3集每容量单位的部分,因为当DocumentDB从预览转移到生产时,这种安排就被删除了。
https://stackoverflow.com/questions/27456564
复制相似问题