したがって、私の知る限り、mysql にはセット、リスト、ディクテーション、または配列はありません。ゲームの試合に関する情報と、試合でプレイされたキャラクターのリストという 2 つのコア コンポーネントを持つシステムを構築したいと考えています。mysql にリストがあれば、次のようにします。
game_id INT,
characters list<varchar>,
....more data
私ができるようにしたい基本的なクエリは次のようなものです:
SELECT * FROM games WHERE characters IN LIST(list);
1 文字だけで選択することも、10 文字を指定することもできます。問題は、mysql でこれを効率的に行う方法と、10WHERE
節を使用する方法OR
です。キャラクターにも特定の順序はありません...しかし、IDに基づいて順序付けできると思います。
これをうまく行う唯一の方法は、最初のテーブルを基本情報で作成し、2 つ目のテーブルをキャラクター ID と game_id だけで作成することです。
私が知らないかもしれない派手な mysql トリックを使用して、このデータをうまく整理する方法について誰か提案がありますか? 最終的にはクエリが大量になる可能性があるため、クエリも高速である必要があります。ビュー/ダウンロードカウンターを追加しない限り、書き込みよりも読み取りの方がはるかに多くなります....読み取りよりも書き込み/更新の方が多いと思います。
ありがとうございます。喜んで情報を提供します。