首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >模式与无模式DBMS

模式与无模式DBMS
EN

Stack Overflow用户
提问于 2015-07-21 05:58:37
回答 1查看 625关注 0票数 0

据我所知,我正在使用Couchbase Lite数据库进行无模式的项目,我对这个数据库非常满意,因为它解决了我的问题,但它提出了一个与NoSQL (文档数据库)中的主要关键约束相关的问题。

众所周知,所有Schema数据库都将在表中表示,这些表可能有或可能没有主/可饶恕键。例如,假设我有一个名为Student的表,它的主键为usn(大学座位号),以及其他属性,名字、姓氏、地址、联系人号等等。

usn _

2BA11CS409 _ abc _ mnq _

2BA11CS410 _ xyz _ PQR _PQR_ 1234567809

在这里,如果我再次尝试添加2BS11CS409值,该表将通过错误声明违反主键约束(不能添加重复键)。

但文档数据库的情况是什么,它将如何识别文档中的唯一价值,

代码语言:javascript
复制
docID:123456789zxcv

{
usn : 2BA11CS409,
firstname : abc,
.......
....... etc
}

我知道每个文档都有一个唯一的Id,其键被索引以便在数据库中搜索,但是我创建了另一个具有相同值的文档,

代码语言:javascript
复制
docID:zxcv123456789
{
usn : 2BA11CS409,
firstname : abc,
last
....... etc
}

当我尝试用usn访问一个数据库时,它必须只返回一个文档,但是它会返回给我两个文档可能是相同的或者不同的。

我需要了解文档数据库中存在于关系数据库中的主/唯一的关键概念。或者你可以把我转到一些文章上

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2015-07-21 06:09:17

好的,模式或者没有模式唯一的键约束总是使用索引,大多数RDB的优点是它们为您提供这种服务,如果couchbase您需要自己来做的话。基本上,您有第二个集合,它表示索引。每次要在标准集合中插入时,只需先检查索引,如果没有将文档插入到常规集合中,则先检查具有要插入的usn的文档是否存在。然后使用docId=usn将文档插入索引,如果愿意,可以插入对插入到常规集合中的文档的docID的引用。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31531392

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档