Tarantool数据建模关系

时间:2017-09-10 22:37:52

标签: database-design data-modeling tarantool database nosql

我正在构建一个需要业务模型的应用。该模型如下:

Company: {
  id (primary index)
  name
  description
  humans: [id_human1, id_human2, id_human3],
  jobs: [id_job1, id_job2, id_job3]
}

Human: {
  id (primary index)
  company: id
  job: id
  name
  age
}

Job: {
  id (primary index)
  job_name
  humans: [id_human1, id_human2, id_human3]
  companies: [id_company1, id_company2, id_company3]
}

我希望能够执行以下查询: - 获取所有job_id = 1的公司。 - 让所有为company_id = 2工作的人类。 - 获取company_id = 1的所有工作 要么 - 获取所有具有job_id = 1和company_id = 2的人。

我应该如何在tarantool中建模上述信息并保持数据之间的关系,同时保持查询的快速?

1 个答案:

答案 0 :(得分:0)

如果您对元组集进行规范化,那么公司/工作和工作/公司查询将非常简单。而不是公司中的一系列作业,添加一个名为Company_Job {companyID,jobID}的新元组。

然后对Company_Job_Human执行相同操作并构建二级索引。