Couchdb couchrest模型中的唯一约束

Couchdb couchrest模型中的唯一约束,couchdb,couchrest,Couchdb,Couchrest,在CouchRequest中,实现像唯一约束这样的东西的最佳实践是什么。我可以用_id来实现这一点,但如果我想在多个字段上实现它,不一定是一个复合字段,甚至是单独的字段,该怎么办呢。例如,我希望电子邮件ID和用户名都是唯一的,只是为了指出一个例子 在不使用_id字段的情况下执行此操作是否有最佳实践。在CouchDB中强制唯一性的唯一方法是使用\u id字段 我相信对于其他需要唯一性的事物,最好的做法是允许客户端存储它,然后检查作为外部程序(或线程,或cron作业等)的唯一性,然后对此作出反应。例

在CouchRequest中,实现像唯一约束这样的东西的最佳实践是什么。我可以用_id来实现这一点,但如果我想在多个字段上实现它,不一定是一个复合字段,甚至是单独的字段,该怎么办呢。例如,我希望电子邮件ID和用户名都是唯一的,只是为了指出一个例子


在不使用_id字段的情况下执行此操作是否有最佳实践。

在CouchDB中强制唯一性的唯一方法是使用
\u id
字段

我相信对于其他需要唯一性的事物,最好的做法是允许客户端存储它,然后检查作为外部程序(或线程,或cron作业等)的唯一性,然后对此作出反应。例如,map/reduce视图可以轻松生成相同字段值的计数,因此搜索
count>1
的字段很容易。接下来,更正发现的任何重复项

您甚至可以将其视为带有请求/拒绝或请求/批准步骤的简单工作流。存储初始文档,但直到它有
“确认”:true
,它才是正式文档。它仅在脱机检查器执行上述检查后收到确认

我认为在现实世界的应用程序中,使用CouchDB进行开发的人会推迟唯一性约束,这与人们尝试不过早优化的原因相同。你可能会注意到99%的用户总是输入一个唯一的电子邮件地址,所以一直试图强制唯一性只会给你自己制造一个你不需要的问题