Наиболее эффективное сопоставление объектов Many-Many (в формате JSON) - PullRequest
0 голосов
/ 31 августа 2011

Мне нужно представить сопоставление объектов «многие-многие» между двумя различными группами объектов с использованием JSON.Например, скажем, мой первый набор объектов - «студенты», а второй - «курсы».У каждого студента может быть много курсов, но у каждого курса также может быть много студентов.Есть ли стандартный способ представления такой схемы, такой, чтобы поиск был максимально эффективным?

Я знаю, что я мог бы, например, сделать

"ELEC1000": ["Bob", "Jessica", "Jeff"],
"MECH1000": ["Aaron", "Bob", "Ben", "Sally"] 

Это привело бы к оченьбыстрые результаты при попытке найти учащихся, зачисленных в ELEC1000, но это сделало бы поиск классов зачисленным Бобом неэффективным.Я подозреваю, что мне нужно использовать какую-то хэш-карту, но я не совсем уверен, как это реализовать.

Заранее спасибо!

1 Ответ

2 голосов
/ 31 августа 2011

Если вы хотите эффективный поиск в обоих направлениях, вам необходимо дублировать данные (в форме, которую база данных называет индексом).

Например, в дополнение к уже имеющейся у вас карте(курс => список студентов), также создайте противоположную карту (студент => список курсов).

Конечно, вам необходимо поддерживать обе карты при наличии обновлений.

...