質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
データベース設計

データベース設計はデータベースの論理的や物理的な部分を特定する工程です。

Q&A

解決済

1回答

5097閲覧

顧客ごとにテーブルを作成することはありでしょうか?

chankane

総合スコア139

データベース設計

データベース設計はデータベースの論理的や物理的な部分を特定する工程です。

0グッド

0クリップ

投稿2018/08/08 03:14

前提・実現したいこと

WEBアプリケーションの勉強がてら、メルカリをモデルにWEBショッピングを作ることになりました。
現在、データベース設計のところでつまずいてしまっています。
具体的には、購入履歴の検索部分です。設計として、2パターン考えたのですが、どちらにも利点欠点があり、迷ってしまっています。
今回の場合どちらでも問題ないのですが、目的が勉強なので、本来ならこうするべきというパターンを教えてください!

パターン1

購入済み商品ユーザIDというテーブルをユーザごとに作る
購入履歴はそこから取得
利点:取得するだけなので早い
欠点:テーブルがバカ増える

パターン2

購入済み商品というテーブルを作る(購入者IDというカラムがあります)
購入履歴は購入者IDを使って検索
利点:テーブルが1つで済む
欠点:検索に時間がかかる(データ数が多い場合、購入ごとに期間が開くとき)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

通常のデータ管理上パターン1はありえないです。
例外的にたとえば顧客ごとに蓄積する項目が異なり、1テーブルで
管理するメリットがないならそういうパターンもあるかもしれません

投稿2018/08/08 03:19

yambejp

総合スコア114843

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

chankane

2018/08/08 03:29

ご回答ありがとうございます。パターン1はあり得ないと断言できる理由はなんですか?初心者ですみません。
yambejp

2018/08/08 03:40

圧倒的に非効率だからです。 ちなみに適当な規模でテーブルをわけるパーティショニングという技術があります 顧客ごとにわけることはメリットがありません
chankane

2018/08/08 03:45

納得です。ありがとうございました<(_ _)>
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問