CouchDB数据库模型

我有两个实体:

  • 公司[companyId(PK)]和
  • 员工[employeeId(PK),companyId(PK,FK)]。
  • 无论如何,我可以在CouchDB中组织我的文档,以便使用以下格式查询员工($ CouchDB是我的CouchDB实例的URL)?

    $CouchDB/company/{companyId}/employee/{employeeId}
    

    我知道我们可以将公司和员工文档混合到一个数据库中,并使用元字段(例如:“_type”)和map / reduce来查询我们想要的文档。 “map / reduce”方法没有问题,只需要仔细检查一下,这样我就不会错过任何东西。

    非常感谢,


    您无法以这种方式组织您的文档。 我同意,这是一个非常好的布局,但简短的答案是,CouchDB不支持。

    文档ID(和文档URL)是平坦的。 它们都共享相同的命名空间。 另一种说法是,文档中的"_id"必须是其主键。


    尽管有一些怪癖,文档_id可以包含/ 。 然后company/COMPANYID/employee/EMPLOYEEID是有效的ID。

    我经常使用以下方案来构建文档的_id (我更喜欢_ ):

    EntityName_ENTITYID
    

    有了这个_id

  • 我不需要_type字段;
  • 我得到所有使用_all_docs?startkey="Company_"&endkey="Company_fff0"公司_all_docs?startkey="Company_"&endkey="Company_fff0" ;
  • 我使用_all_docs?startkey="Employee_COMPANYID_"&endkey="Employee_COMPANYID_fff0"获得公司内的所有员工_all_docs?startkey="Employee_COMPANYID_"&endkey="Employee_COMPANYID_fff0" ;
  • 我避免了不同实体之间的ID冲突。
  • 链接地址: http://www.djcxy.com/p/86423.html

    上一篇: CouchDB database model

    下一篇: How to take the average of big data in MongoDB vs CouchDB?