一对多关系的文档数据库实现

时间:2019-05-23 09:39:36

标签: mongodb document-database

Martin Kleppmann设计数据密集型应用程序时说,使用树层次结构在文档数据库中实现了一对多关系。例如,如下面的代码所示,用户可以担任多个职位,并且可以表示为持有的职务和组织的列表。但是组织将是重复的。因此,无法像在RDBMS中一样对数据进行标准化。该书进一步说,多对一关系不能在文档DB中表示,因为它不支持联接。但是它也不能支持一对多,这与其声明相反,因为如果数据存储在单独的实体中,那么文档DB不能像下面的JSON表示形式那样完整地表示。因此,如果我们说文档数据库支持一对多关系,那么不存储重复信息就不能做到这一点吗?

{
    "user_id": 251,
    "first_name": "Bill",
    "last_name": "Gates",
    "summary": "Co-chair of the Bill & Melinda Gates... Active blogger.",
    "region_id": "us:91",
    "industry_id": 131,
    "photo_url": "/p/7/000/253/05b/308dd6e.jpg",

    "positions": [
        {"job_title": "Co-chair", "organization": "Bill & Melinda Gates      Foundation"},
        {"job_title": "Co-founder, Chairman", "organization": "Microsoft"}
    ],
    "education": [
        {"school_name": "Harvard University", "start": 1973, "end": 1975},
        {"school_name": "Lakeside School, Seattle", "start": null, "end": null}
    ],
    "contact_info": {
        "blog": "http://thegatesnotes.com",
        "twitter": "http://twitter.com/BillGates"
  }
}

0 个答案:

没有答案