我需要使用JSON表示两个不同对象组之间的多对象映射。例如,假设我的第一组对象是“学生”,第二组是“课程”。每个学生可以有很多课程,但每门课程也可以有很多学生。是否存在表示此类模式的标准方法,以便查找尽可能高效?
我知道我可以,例如,
"ELEC1000": ["Bob", "Jessica", "Jeff"],
"MECH1000": ["Aaron", "Bob", "Ben", "Sally"]
当试图找到学生在ELEC1000中注册的内容时,这将导致非常快的结果,但是会使搜索Bob注册的课程效率低下。我怀疑我需要使用某种类型的散列图,但我不完全确定如何实现它。
提前致谢!
答案 0 :(得分:2)
如果您希望双向高效查找,则需要复制数据(以数据库称为索引的形式)。
例如,除了您已经拥有的地图(course =>学生列表)之外,还要构建相反的地图(student =>课程列表)。
当然,您需要在有更新时维护两个地图。