関連のツールの紹介、使い方などをやさしく説明しています。BubbleをはじめとしたNoCode開発において、初心者がつまずくポイントのひとつ。それが、データベース(DB)だと思います。手が止まってしまう方も多いと思います。今回の記事では非エンジニアの方へ向けて、設計の流れ・手順を解説します。ショッピングサイト汎用的なDB設計手順を考えてみます。今回は、Amazon・楽天のようなショッピングサイトを例にしてみます。DBの目的を明確にするまずは「何を作るのか」、つまり「何ができれば完成とするか」を考えます。注文履歴を、ユーザーごと、日付ごとに表示するなどが挙げられます。それを、どのようなフォーマットで出力するかを考えます。具体イメージを紙などに描くと効果的です。今回は注文履歴を例に、このようなフォーマットとします。DB設計に正解はありません。よって、ここをしっかり定めることで、よりよい設計ができます。必要な情報を考え、整理するDBで管理すべき項目を考え、一覧表を作ります。先ほど考えた具体イメージから、項目を1つ1つ洗い出していきます。※今回BubbleのDBに直接書いていますが、まずは紙などで整理すると分かりやすいです。「注文履歴」テーブルこの状態でもデータは格納できていますが、重複している項目があり無駄が多いです。お客さんが結婚して名前・住所が変わった場合、DB内の1つ1つを変更することになります。データが多いと果てしない作業ですし、記入ミスの原因にもなります。そこで一覧表を分割し、データの重複をなくします。名前や住所が何度も登場するので、これらは「ユーザー情報」として格納します。「ユーザー情報」テーブルまた注文日も重複するので、「注文履歴」と「注文詳細(注文商品一覧)」で分割します。「注文詳細」テーブル分割した結果、注文履歴テーブルは、合計金額と注文日のみとなりました。「注文履歴」テーブルここまでで3つのテーブルができました。Detail)整理され、見た目としても分かりやすくなりましたね。一覧表の関係性を確認するDBの特徴の一つとして、表同士を結びつけられることが挙げられます。(リレーションシップ)これを使って、分割した表同士を結び付け、自由にデータを取り出せるようにします。このオーダーはどのユーザーが注文したものか。「ユーザー情報」と「注文履歴」を結びつけます。具体的には、両テーブルに同じ項目を作り、同じ値を入れることで結びつきます。今回は「お客様番号」を両テーブルに保持させることで、結びつけます。次に、「注文詳細」の商品たちは、どの「注文履歴」に属するのか。こちらも同じように、「注文番号」を保持させて結びつけます。各テーブルは最終的に、このようになりました。NoCode花子さんによる注文が1件追加されています。「注文履歴」テーブル「ユーザー情報」テーブル「注文詳細」テーブルこのようにリレーションをつけることで、データが自由に取り出せるようになりました。※Bubbleにおける設定の詳細は、今回は省きます。アプリを作成するこれで大まかな設計が完了したので、実際にアプリを作ってみてください。うまく取り出せないデータがある場合、設計がどこかおかしい可能性があります。結びつかないのか考えながら、設計し直してみてください。RepeatingGroup等を使用し、完成した商品履歴がこちらです。https://practicedb.bubbleapps.io/version-test/index_copy?debug_mode=trueエディタも公開するので、具体的な設定方法など参考にしてください。bubble.ioまとめ順序だてて書いてみましたが、やはりDB設計はとても難しいです。手順1,2をしっかり考えることは大切だと思います。リレーションは上手に活用することで、データを自由に取り出すことができ、表現の幅が広がります。SNSなら、いいね機能・フォロー機能・メッセージ機能などが実装できるようになります。学び方としては、本ブログの作品解説を参考に1つずつ作ってみて慣れていくことが、1番の近道だと思います。個別指導などを行っています。)引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。