Api CouchDB数据库模型
我有两个实体:Api CouchDB数据库模型,api,rest,couchdb,Api,Rest,Couchdb,我有两个实体: 公司[公司ID(PK)],以及 员工[员工ID(主键),公司ID(主键,FK)] 我是否可以在CouchDB中组织文档,以便使用以下格式查询员工($CouchDB是我的CouchDB实例的URL) 我知道我们可以将公司和员工文档混合在一个数据库中,并使用元字段(例如:“_type”)和映射/减少来查询我们想要的文档。“map/reduce”方法没有错,只是想再次检查,这样我就不会错过任何东西 非常感谢,您不能这样组织文档。我同意,这是一个非常好的布局,但是简单的回答是CouchD
“\u id”
值必须是其主键。您不能以这种方式组织文档。我同意,这是一个非常好的布局,但是简单的回答是CouchDB不支持它
文档ID(和文档URL)是平面的。它们都共享相同的名称空间。另一种说法是,文档中的“\u id”
值必须是它的主键。尽管文档\u id
可以包含/
。那么company/COMPANYID/employee/EMPLOYEEID
就是一个有效的id
我经常使用以下方案来构建文档的\u id
(我更喜欢\u
):
使用此\u id
:
- 我不需要
字段李>\u type
- 我得到的所有公司都有
李>\u所有文档?startkey=“Company”&endkey=“Company\uff0”
- 我使用
获取公司内的所有员工李>\u all\u docs?startkey=“Employee\u COMPANYID”&endkey=“Employee\u COMPANYID\uff0”
- 我避免不同实体之间的id冲突
\u id
可以包含/
。那么company/COMPANYID/employee/EMPLOYEEID
就是一个有效的id
我经常使用以下方案来构建文档的\u id
(我更喜欢\u
):
使用此\u id
:
- 我不需要
字段李>\u type
- 我得到的所有公司都有
李>\u所有文档?startkey=“Company”&endkey=“Company\uff0”
- 我使用
获取公司内的所有员工李>\u all\u docs?startkey=“Employee\u COMPANYID”&endkey=“Employee\u COMPANYID\uff0”
- 我避免不同实体之间的id冲突
$CouchDB/company/{companyId}/employee/{employeeId}
EntityName_ENTITYID