次の状況を解決する方法を決定できません。、、、などのusers
基本的な属性を持つテーブルがあり、ユーザーが選択したカテゴリを記録したい。SOに関する同様の質問と広範囲にわたるグーグルを読んだ後、私はいくつかのオプションを思いつきました。id
username
email
a)user_categories
次のフィールドを持つテーブルを作成します。
+----+---------+-------+-------+-------+
| id | user_id | sport | music | books |
+----+---------+-------+-------+-------+
| 1 | 123 | 0 | 1 | 1 |
| 2 | 543 | 1 | 0 | 0 |
| 3 | 645 | 1 | 1 | 0 |
+----+---------+-------+-------+-------+
私の場合、「カテゴリ」(スポーツ、音楽、本)はブール型です-YES / NO(1/0)は、ユーザーがこのカテゴリを選択しているかどうかを示します。また、これらの「カテゴリ」は20個以下になります(現在、私のデザインには12個あります。いずれも削除されず、新しい(よりきめ細かい)ものが追加される可能性があります)。
b)categories
たとえば次のようなテーブルを作成します。
+----+----------+
| id | category |
+----+----------+
| 1 | sport |
| 2 | music |
| 3 | books |
+----+----------+
その場合、user_categories
テーブルは次のようになります。
+----+---------+-------------+----------------+
| id | user_id | category_id | category_value |
+----+---------+-------------+----------------+
| 1 | 123 | 1 | 0 |
| 2 | 123 | 2 | 1 |
| 3 | 123 | 3 | 1 |
+----+---------+-------------+----------------+
この2つのうちどちらを使用しますか。(または、私が完全に間違っている場合は、より良い解決策を提案できますか?)