下記のような一つの項目に対して一定ではない個数の項目について考えています。
(正規化についてはなんとなく理解しています。)
(ぐるなびより転載)
実装方法として私が考えているのは以下の3つなのですが、どれがよいのでしょうか。
(bookひとつにつき複数のtagidが割り当てられており、別途tab tableがあることを仮定しています。)
tag table
tagid | tagname |
---|---|
1 | ミステリー |
2 | 自己啓発 |
中略 | |
12 | 子供向け |
13 | 本屋大賞受賞 |
1. カンマ(,)などで区切る
book table
bookid | name | tag |
---|---|---|
100 | RDS入門 | 1, 3, 8 |
とってきたデータを,で区切れば配列が得られるので、実装としてはなんとかなりますが、なんとなく気持ち悪いです。
2. 多めにカラムを取っておいて埋める
book table
|bookid|name|tag1|tag2|tag3|tag4|tag5|tag6|
|:--|:--:|:--:|:--:|:--:|:--:|--:|
|100|RDS入門|1|3|8||||
わかりやすいのですが、増やしたくなった場合大変そうです。
3. 別にBook tag tableを作る
book table
bookid | name |
---|---|
100 | RDS入門 |
book tag table
book_tagid | bookid | tagid |
---|---|---|
10001 | 100 | 1 |
10002 | 100 | 2 |
10008 | 100 | 8 |
ユニークなidとしてBookid+tagidを設定してみました。
個人的にはこちらがきれいなのかなとは思うのですが、無意味なidを作ってしまうのはいかがなものなのでしょうか。
ご教示の程よろしくお願いします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/07/04 20:46
2019/07/04 21:35
2019/07/05 01:31
2019/07/05 23:41