おおよそこんな感じのテーブルがあります。各リンクには、任意の数のロケーションを含めることができます。
| link | location
| aa | 1
| aa | 2
| aa | 3
| bb | 1 <== location can belong to multiple links
| bb | 3
| cc | 4
一連の場所を取得し、対応するリンクを返すクエリが必要です。期待される結果の例:
given {1} => no result, null etc.
given {1,2} => no result, null etc.
given {1, 2, 3} => result 'aa'
given {3, 2, 1} => result 'aa'
given {1, 2, 3, 4} => no result, null etc.
given {4} => result 'cc'
理想的には、このデータベース側を SQL クエリとして、具体的には sqlite3 の Rails Active Record で実行しますが、特定のソリューションではなく一般的なアプローチを求めているため、これは重要ではありません。
グループ化を検討しましたが、テーブルが巨大になる可能性があり、ルックアップを高速にしたいと考えています。