0

我正在构建一个需要业务模型的应用程序。模型是这样的:

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 中对上述信息进行建模并保持数据之间的关系,同时保持快速查询?

4

1 回答 1

1

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

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

于 2017-10-09T21:14:25.150 回答