ノーコード入門 | AdaloのDB設計 決定版! | Adaloでインスタ風アプリを作成してみた③
こんにちは、鴨野です。
今回は、アプリの肝とも言える「DB設計」についてお伝えしていきます。
Adaloのデータべースは少し特殊で、一般的なDB設計とはやや異なります。
というのも、AdaloではDB構築もある程度パッケージ化されていて、感覚的に組めるようになっているからです。
そのおかげで、DBの知識があまり無くても、なんとなくDBを組めてしまいます。
しかし、「なんとなく組める」だけではうまく実装できない部分が必ず出てきます。
DBの基本を身につけると…
・実装できる機能の幅が広がる
・アプリの質がぐっと上がる
そこで今回は、DBのことをよく知らない方にも分かりやすいように、基本から丁寧にお伝えします。
DB設計はアプリの質を決める重要な部分なので、しっかり身につけていきましょう!
1.DBとは何か?
「DB(データベース)って何だろう?」と思った方のために、簡単にご説明します。
DBとは、整理して格納されたデータ群のことです。
システムを運用する上で扱うデータを、管理・参照しやすいように整理して保管しています。
どんなアプリを作成するときにも、データベースが必要です。
例えば、今回作成するインスタ風のアプリだと…
・ユーザーの情報(名前やメールアドレス、プロフィール)
・投稿された内容の情報(写真、キャプション、写真投稿者)
・投稿に対するコメントの情報(コメント内容、コメント投稿者)
このようなデータが必要ですよね。
DB設計は、これらのデータを格納する箱を作成する作業です。
そしてDB設計において重要なことは、この2つです。
・区分けが適切か
・分かりやすくラベリングされているか
例えば、部屋の片づけを想像してみてください。
調理器具はキッチン、文房具はデスク…と、それぞれの用途に合った場所に片付けますよね。
使うときに取り出しやすく、使用後に片づけやすい場所にしまうでしょう。
そして、引き出しや箱にラベルを貼ることもありますね。
「筆記用具」「夏服」など、何が入っているか一目でわかるようにします。
データを格納する際も、大事なポイントは同じです。
データを参照しやすく、管理しやすい箱を用意することが重要です。
2.AdaloのDB構造
では実際に、Adaloのデータベースを見ていきましょう。
1)コレクション
左端にある「Database」タブ(赤枠で囲んでいる部分)をクリックすると、一覧が表示されます。
オレンジで囲んでいるのが、「コレクション」と呼ばれる大きな箱です。
2)プロパティ
コレクションの下にずらっと並んでいるのが「Property」と呼ばれる小さな箱です。
(コレクション名の左にある矢印をクリックすると、プロパティの表示/非表示を切り替えることができます。)
このプロパティが、実際に各データを収納する箱になります。
まとめると、以下の通りです。
コレクション:ひとかたまりのデータ格納場所
プロパティ:各コレクションが持つデータ項目
ちなみに、この名称はAdalo独自のものです。
一般的なDBの名称に置き換えると、
コレクション=テーブル、プロパティ=カラム です。
3)レコード
では次に、コレクションの中に格納される実際のデータを見てみましょう。コレクション名の右側にある、「〇 Records」ボタンをクリックします。
赤枠で囲っているのが「レコード」と呼ばれる、一連のデータです。
例えば、ユーザーが新規ユーザー登録を行った場合。
フォームに入力したユーザー名/メールアドレス…といった一連のデータが、1件のレコードとしてここに格納されます。
そしてこの表のヘッダになっているのが、先ほどご説明した「プロパティ」です。
1件のレコードにつき、各プロパティに1つずつデータを格納できます。
図で挙げているコレクションで表現すると、DB構造は以下の通りです。
コレクション:全ユーザーデータの集まり
プロパティ:各ユーザーが持つ各項目情報
レコード:ある一人のユーザーの情報
4)リレーションシップ
AdaloのDBにはもう一つ、重要な要素があります。
正確に言うとプロパティの一種で、「リレーションシップ」といいます。
赤枠で囲っている、鎖のマークのアイコンがついているプロパティです。
このリレーションシップは、簡単に言うと「別のコレクションとの紐づけ」です。
上図の項目でいうと、それぞれ以下の情報を管理しています。
Send Post=このユーザーが作成した投稿はどれか
Like Post=このユーザーが「いいね」を押した投稿はどれか
Send Comment=このユーザーが送信したコメントはどれか
ここは少し分かりにくいので、詳しくはこの後のDB作成方法の箇所でお伝えします。
3.AdaloでのDB作成方法
では実際に、AdaloでのDB作成方法をお伝えします。
1)コレクション追加
下図の「+ ADD COLLECTION」ボタンをクリックします。
コレクションの名前を入力して「ADD」ボタンを押すと、コレクションを作成できます。
2)プロパティ追加
次に、作成したコレクションの中にプロパティを追加します。
プロパティを追加したいコレクションのプロパティ一覧を開き、
下部にある「+ ADD PROPERTY」ボタンをクリックします。
プロパティの型を選択します。
このプロパティに格納したいデータの型を選択します。
例えばユーザー名であれば「Text」、電話番号であれば「Number」をクリックします。
プロパティの名前を入力して「SAVE」ボタンを押すと、プロパティを追加できます。
ちなみに、先ほどお伝えした「リレーションシップ」もここで設定します。
プロパティの型を選択する際、一番下に「Relationship」があります。
これにカーソルを当てると、右側にコレクションの一覧が表示されます。
紐づけたいコレクションを選択し、クリックします。
リレーションの形を選ぶ画面が表示されます。
図を見ると分かるように、リレーションには3つのパターンがあります。
①1対Nのリレーション
②N対1のリレーション
③N対Nのリレーション
Nとは変数のことで、紐づくデータを複数持ちうることを意味します。
例えば、インスタ風アプリで「ユーザー」と「ユーザーが作成した投稿」を紐づける場合、1人のユーザーが複数の投稿を作成できますが、1件の投稿につき投稿者は1人しかいません。
そのため、ユーザー:投稿=1:N の関係となります。
このように、紐づけようとしているコレクションの関係に合致する形を選択します。
後は他のプロパティ同様、名前を決めたら追加できます。
ーーーーーーーーーーーーーーーーーーーーー
今回は、DBの基本とAdaloのDB構造、そしてAdaloでのDB作成方法をお伝えしました。
DB設計は開発の中でもとても重要な要素です。
初めてDBを設計する方にとっては少し複雑かもしれませんが、難しく捉える必要はありません。
パターンをただ暗記するのではなく、手を動かしながら試行錯誤を繰り返すのが習得のコツです。
こうしたらどうなるかな?
ではこう変えたらどうか?
と色々試しているうちに、少しずつ身に付いてくると思います。
いきなり正解には辿り着けないので、悩みながら色々試してみましょう。
Adalo公式テンプレート内のDB構成を参考にしてみたり、
既存のアプリの機能を見て、その機能を実現するためのDB設計を考えてみるのも良いと思います。
ちなみにDB設計の際には、リリース後の運用や機能拡張の可能性も考慮して組む必要があります。
リリース後にDB構造を変更しようとすると影響範囲が大きく、改修負荷も大きいためです。
この辺りは、応用編として別途記事を作成する予定です。
次回は、実際にインスタ風アプリのDB設計を行います。
実例を交えながら、DB設計のコツを分かりやすくお伝えします。
ここまで読んで下さりありがとうございます!