我是cosmosdb(documentdb)的新手,在阅读文档的过程中,我一直在重复阅读一件事,即documentdb是无架构的,但我觉得集合与模式类似,都是逻辑视图。
Wikipedia将模式定义为“术语”模式“是指将数据组织为数据库构建方式的蓝图”。我相信收集也是一样的,它是文档的组织,存储的prcedure,触发器和UDF。
所以我的问题是,架构与集合有何不同?
答案 0 :(得分:4)
集合实际上与架构无关。它们只是文档的组织结构。使用Cosmos DB,它们可用作:
您是选择为每个对象类型创建单个集合,还是在单个集合中存储多个对象类型,完全取决于您。与数据的形状无关。
答案 1 :(得分:3)
关系数据库的模式与文档数据库的模式略有不同。简单来说,关系数据库比文档模式更严格。换句话说,RDBMS表中的记录必须严格遵守模式,因为我们在将文档存储到Document集合时具有一定的灵活性。
传统上,集合是一组遵循相同模式的文档。但是文档DB不会阻止一个人在一个集合中存储具有不同模式的文档。它为用户提供了灵活性。
让我们举个例子。我们假设我们存储了一些客户信息。 在关系数据库中,我们可能有一些像
这样的结构Customer ID INT
Name VARCHAR(50)
Phone VARCHAR(15)
Email VARCHAR(255)
根据拥有电子邮件或电话号码的客户,它们将被记录为正确的值或空值。
ID, Name, Phone, Email
1, John, 83453452, -
2, Victor, -, -
3, Smith, 34535345, smith@jjjj
但是,在文档数据库中,如果某些列没有任何值,则需要在集合中显示这些列。
[
{
id: "123",
name: "John",
phone:"2572525",
},
{
id: "456",
name: "Stephen",
},
{
id: "789",
name: "King",
phone:"2572525",
email:"king@asfaf"
}
]
但是,始终建议坚持使用文档db中的模式,即使它们可以灵活地将无模式文档存储到集合中以实现可维护性。