ここでは、初心者から実践的に学べるプログラミングスクール「ウェブカツ!!」のWEBサービス部を受講している生徒の方向けにさらに「データベースのテーブル設計」についての理解度を上げるため特訓をしていきます。
ここでは「MySQL」を題材にします。
DBのテーブル設計鬼練7:メルカリの商品情報を洗い出そう
問題
もう、ユーザー情報(人)はいいでしょう。
今度は、「物、コト」の情報を洗い出しましょう。
下記の問題に答えてください。
メルカリの出品情報をキャプチャ内を元に洗い出してください。
ヒント
もう分かりますよね?
答え
答えは
- 商品画像パス(10枚まで)
- 商品名
- 商品の説明
- 商品カテゴリー
ですね。
項目名はなんでもいいですし、順番だってなんだっていいです。
もちろん、全部DBへ保存が必要ですよね。
画像に関してはMAX10枚なので、
画像パスを10個まで
DBに保存しておく必要がありますね。
ユーザーによって1枚かもしれないし、2枚かもしれないし、10枚かもしれないわけです。
どうやってDBに持たせるか?テーブルをどう設計するか?ですね。
カテゴリーというのも、
- 電化製品
- キッチン用品
- 食品
というような「カテゴリー名」の情報もどうやってDBで持っておくか?ですね。
新たな商品が出れば新たなカテゴリーが出るかもしれませんね。
将来的に増える可能性があり、際限がないデータなわけです。
ちなみにこれ、DBで持たなくても大丈夫だったりします。
実際にそういうやり方でサービスを作っている現場もあるので現場によります。
(そこらへんもまたあとで)
今回カテゴリーは1種類ですが、サービスによっては1種類ということはありません。
- 大分類
- 中分類
- 小分類
みたいに3種類とかある場合もあります。
- 「大分類」は「電化製品」
- 「中分類」は「PC」
- 「小分類」は「本体」
みたいにカテゴライズする場合もあるわけです。
こういう場合、カテゴリーの情報をどうDBで持っておくか?ですね。
大分類のデータに紐づいた中分類があり、中分類のデータに紐づいた小分類がある。ってことになりますが、最初からこの説明しはじめるとこんがらがるので、今回はシンプルに1カテゴリーにしてます。