Лучший способ обрабатывать SQL как поиск AND с несколькими связанными списками - PullRequest
0 голосов
/ 02 июля 2019

Например, У меня есть 3 списка с различной информацией, и вот как они структурированы:

"dirID","movID"
    "175","332"
    "176","333"
    "176","334"
    "177","335"
    ...

"dirID","dirName"
    "175","David Lynch"
    "176","Steven Soderbergh"
    "177","Abbas Kiarostami"
    ...

"movID", "title" ,"genre"
    "332", ...
    "333", ...
    "334", ...
    ...

Так что теперь моя проблема - сделать комбинированный поиск, где вы можете искать как этот жанр с этим режиссером.

Мой первый подход состоял в том, чтобы поместить список movID со всей связанной информацией, такой как title и gerne, в хэш-карту. То же самое с dirID и значением dirName . Используйте список dirID movID в качестве массива. Теперь, если вы ищете режиссера с этим жанром, сначала обе хеш-карты собирают свои варианты подгонки, и после этого я перехожу к хэш-таблице подгонки жанра, где можно найти только movID, и проверяю для каждого результата, можно ли найти этот movID в массиве. список. Если да, я просматриваю каждый результат на карте подходящих директоров и проверяю, можно ли найти dirID для текущего movID. Но это кажется очень неэффективным ...

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

При каком подходе я должен идти или есть даже лучшее решение?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...