设计数据密集型应用程序 - 数据模型 & 查询语言

设计数据密集型应用程序 - 数据模型 & 查询语言

笔记来自于 《Designing Data-Intensive Applications》 的第二章

LinkedIn 的简历

简历是一种 self-contained 文档,采用 JSON 的表达方式应该会更为合适。

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"
	 }
}

在简历中,存在很多一对多的关系,这种关系构成了树的结构,采用 JSON 可以简化这种表达:

在简历中也需要多对多的关系:

扩展简历的多对多关系: