1

誰かに 20 個のカテゴリから最大 3 個のカテゴリを選択させるプロジェクトを作成しています。常に最大 3 個のカテゴリになるため、データベースにさらに 3 つの列 (category_1、category_2、category_3) を作成するだけではそれほど多くはありません。 .

挿入時に、3 つの異なる列に保存するのではなく、配列を「カテゴリ」列に保存することを想像します。

私の質問は、情報を取得する瞬間です。特定のカテゴリが 1 つある各レコードを検索するとしたら、どのレコードがより高速になるでしょうか? 配列である1列(LIKEなどで想像します)または3列を調べるには?

私の質問が明確であることを願っています。ありがとう。

4

1 に答える 1

2

コンマ区切りリスト (「配列」) をデータベース列に格納しないでください。相互参照表を使用します。

(データベースで「3 つ以下のカテゴリ」という条件を適用する場合は、相互参照テーブルに列を追加できcategory_numberます。理想的には、チェック制約を使用してその列を値 1、2 に制限します。および 3 ですが、MySQL はチェック制約をサポートしていません。代わりに、category_number列を 3 つの行を持つ別のテーブルへの外部キーにすることができpermitted_category_numberます。)

于 2012-05-01T15:23:04.977 に答える