Bubbleのデータベース設計を学ぶための、ただ1つの方法
アプリ開発において、データベース(DB)設計は重要項目のひとつです。
しかし、僕自身を含む初学者にとっては、
つまづきやすく、ハードルの高い部分でもあります。
先日、DB設計について語るイベントに参加しました。
そこから自分なりに整理し、最も最適な学習方法を考えました。
結論を先に述べると
より多くの事例を「見て」「マネをする」
これに尽きると思いました。
これはBubbleのみならず、MySQLなどの一般的なDB設計にも当てはまるのかなと思います。
本記事では、この結論に至るまでの考えを記述します。
自己紹介
名前:あぽと
職業:エンジニア(歴0.5年)
習得言語:Java、Ruby(プロダクト開発経験なし)
一応エンジニアの肩書でコーディングしますが、歴が短く、社内オリジナル言語を扱うため、汎用性がありません。
そのため「オブジェクト指向をそれとなく分かっている人」くらいの認識でお願いします笑
4月に、NoCodeツール(コードを書かずにアプリ開発を行うツール)である"Bubble"の学習を始め、
3週間ほどでアプリを初開発・初リリースしました。
飲食店テイクアウト情報サイトです。
Tanoncha(たのんちゃ)
https://tanoncha.bubbleapps.io/
DB設計については悩みましたが、初学者がつまづく壁はひとまず超えられたと自負しています。
参加したイベント
【ノーコード分科会】No-Codeの「DB設計」について語ろう! 〜Bubble会〜 https://nocoders-japan.connpass.com/event/174210/ #NoCoders
こちらのイベントは、BubbleのDBに焦点を置き
日本のトップNoCoderの方々がDB設計について語る会でした。
登壇者はこちらの方々でした。
・大道峻 さん
・ノーコードラボ さん
・shinji さん
・NoCode Ninja さん
・Sho Tさん
また、議事録が上がっており、こちらを参考に執筆しています。
(中田さんありがとうございます!)
考察
どの話も参考になりましたが、
中でもノーコードラボさんの発言が、真理かなと感じました。
初心者は「事例をまだ知らない」ということが、難しく感じる1つの要因である。
DBを上手く設計したいのであれば、急がば回れで、まず事例のマネをして設計してみるといいかも。
前提として、DB設計に正解はありません。
似たような事例でも、場合によっては設計が変わる場合があります。
よって、DB設計は"Best"でなく、"Better"を求めることとなります。
Bestの場合は、明確な「型」が存在する場合が多く
初学者はそれを真似すればよいです。
しかしBetterの場合、そのような「型」が存在しないため
個人の「経験とノウハウ」が必須となります。
「経験とノウハウ」を基に、
「こういう要素と機能なら、こんな設計がいいな」
と、スムーズなDB設計が行えるようになるのかなと感じました。
この「経験とノウハウ」を貯めるため、初学者がやるべきことは
より多くの事例を「見て」「マネをする」
つまり、数をこなせということですね笑
あぽとが参考にした事例一覧
僕はTanonchaを完成させるまでに、
いくつか事例を見て、マネして制作してみました。
結果、納得のいくDB設計ができたと思っています。
参考にした事例を紹介します。
・NoCode School - ノーコードスクール -
https://www.youtube.com/channel/UCa3cFggd3BrJ6qq5lw8P_9w
こちらは、イベント登壇者 shinjiさんのYouTubeチャンネルとなります。
Uberを題材とし、Bubbleの機能を具体的に説明しています。
実際に手を動かし、まったく同じものを作りました。
・ノーコード ラボ
https://blog.nocodelab.jp/
こちらは、ノーコードラボさんのブログです。
(なんだかややこしい説明になりました笑)
記事を参考に、これらを実際に作ってみました。
・元号ジェネレータ
・4択クイズアプリ
・twitter clone
また、DB事例をまとめた記事もあるので、とても参考になります。
・Progate Ruby on Railsコース、SQLコース
https://prog-8.com/courses
僕は元々コーディングによるアプリ開発を目指していたため、
Progateを使ってプログラミング学習を進めていました。
Ruby on Railsコースではtwitterもどき、SQLコースではECショップを事例とし、DB設計を学びました。
もしコーディングに抵抗がなければ、SQLコースはやってみてもいいかもしれません。
・(未学習)大道さんが使用している参考書
イベント登壇者の大道さんが、ご自身が参考にしている本を紹介してくださりました。
こちらはまだ手元にありませんが、
実務でDB設計をこなしている大道さんが参考にしているのであれば、少なくともヒントは得られるかと思います。
本で学ぶ、というよりは
あくまで参考にするのが良いかもしれません。
【追記】2020.6.27
上記の図書にて、学習を終えました。
設計手順や注意点、そもそもデータベースとは、という部分から解説してあり、とても分かりやすかったです。
読む前後で、データベースの見え方が変わりました。
また全体を通して、具体的な明細書からの設計を題材にしているため
抽象・具体の解説が同時に学べ、素早い理解に繋がると感じました。
エンジニア向けの技術書なので難しい箇所も出てきますが、読み飛ばして全然大丈夫です。
データベース設計でつまづいている方、BubbleなどのNoCodeをしっかり触りたい方には
ぜひ読んでいただきたいです。
[改訂新版] これだけはおさえたい データベース基礎の基礎 (エンジニア“確実”養成講座) 谷尻 かおり https://www.amazon.co.jp/dp/4774139939/ref=cm_sw_r_tw_dp_x_8VS9EbQ9WX49T
まとめ
数をこなすべきという、なんとも当たり前な結論ですが、
僕はこれが最も近道なのかなと思いました。
ノーコードラボさんは、このような発言もされていました。
DBを上手く設計したいのであれば、急がば回れで、まず事例のマネをして設計してみるといいかも。
DBに限らず、「急がば回れ」の考えを基に、
初学者はまず、地道にマネしてみることが大切だと思います。