未経験・初心者向け「DBのテーブル設計鬼練7〜メルカリの商品情報を洗い出そう〜」

ここでは、初心者から実践的に学べるプログラミングスクール「ウェブカツ!!」WEBサービス部を受講している生徒の方向けにさらに「データベースのテーブル設計」についての理解度を上げるため特訓をしていきます。

ここでは「MySQL」を題材にします。

DBのテーブル設計鬼練7:メルカリの商品情報を洗い出そう

問題

もう、ユーザー情報(人)はいいでしょう。

今度は、「物、コト」の情報を洗い出しましょう。

下記の問題に答えてください。

メルカリの出品情報をキャプチャ内を元に洗い出してください。

ヒント

もう分かりますよね?

 

答え

答えは

  1. 商品画像パス(10枚まで)
  2. 商品名
  3. 商品の説明
  4. 商品カテゴリー

ですね。

項目名はなんでもいいですし、順番だってなんだっていいです。

もちろん、全部DBへ保存が必要ですよね。

 

画像に関してはMAX10枚なので、

 

画像パスを10個まで

 

DBに保存しておく必要がありますね。

ユーザーによって1枚かもしれないし、2枚かもしれないし、10枚かもしれないわけです。

どうやってDBに持たせるか?テーブルをどう設計するか?ですね。

 

カテゴリーというのも、

  • 電化製品
  • キッチン用品
  • 食品

というような「カテゴリー名」の情報もどうやってDBで持っておくか?ですね。

新たな商品が出れば新たなカテゴリーが出るかもしれませんね。

将来的に増える可能性があり、際限がないデータなわけです。

ちなみにこれ、DBで持たなくても大丈夫だったりします。

実際にそういうやり方でサービスを作っている現場もあるので現場によります。

(そこらへんもまたあとで)

 

今回カテゴリーは1種類ですが、サービスによっては1種類ということはありません。

  1. 大分類
  2. 中分類
  3. 小分類

みたいに3種類とかある場合もあります。

 

  • 「大分類」は「電化製品」
  • 「中分類」は「PC」
  • 「小分類」は「本体」

 

みたいにカテゴライズする場合もあるわけです。

こういう場合、カテゴリーの情報をどうDBで持っておくか?ですね。

大分類のデータに紐づいた中分類があり、中分類のデータに紐づいた小分類がある。ってことになりますが、最初からこの説明しはじめるとこんがらがるので、今回はシンプルに1カテゴリーにしてます。