我正在将 Couchbase Lite 数据库用于我所知道的无模式项目,我对此感到非常满意,因为它解决了我的问题,但它提出了一个与 NoSQL(文档数据库)中的主键约束相关的问题。
众所周知,所有的 Schema Database 都会用表来表示,这些表可能有也可能没有主键/伪造键。例如,假设我有一个名为 Student 的表,其主键为 usn(大学座位号),以及其他属性,名字、姓氏、地址、联系人号码等。
美股 | 名字 | 姓氏 | 地址 | 联系电话
2BA11CS409 | 美国广播公司 | mnq | 班加罗尔 | 1234567890
2BA11CS410 | xyz | 二维码 | 孟买 | 1234567809
在这里,如果我再次尝试添加 2BS11CS409 值,该表将显示违反主键约束(无法添加重复键)的错误。
但是文档数据库中的情况是什么,它将如何识别文档中的唯一值,
docID:123456789zxcv
{
usn : 2BA11CS409,
firstname : abc,
.......
....... etc
}
我知道每个文档都有一个唯一的 ID,其键被索引以在数据库中搜索,但是我创建的另一个文档具有与上面相同的值,
docID:zxcv123456789
{
usn : 2BA11CS409,
firstname : abc,
last
....... etc
}
当我尝试使用 usn 访问一个数据库时,它必须只返回一个文档,但它会返回我两个文档可能相同或不同。
我需要知道文档数据库中的主键/唯一键概念,它存在于关系数据库中。或者您可以将我重定向到一些文章
谢谢你。