はじめに
皆さんこんにちは。季節は秋が終わり、冷たい冬を迎えています。本日の筆者がBubbleの学習を始めて、データベースの概念などほとんどわかっていなかった時期に、とても苦戦したCreate a new thing…とMake changes to thing…の違いについてお話しできればと思います。この二つのWorkflowの違いを理解する役に立てばという気持ちで書きました。
Workflowとは何か
まず初めにWorkflowとは何なのかについて触れていきます。Workflowとは、ある動作をきっかけに、一連のアクションを実行することを意味します。例えば、会員登録画面で会員登録というボタンがあるとします。そのボタンを押したとき、ボタンを押したユーザー(自分)の視点では、会員登録後に表示される会員専用ページが移りだされています。
一方、システム側の視点に立って考えると、ボタンが押された→新規で会員情報を登録する→会員ページに遷移するといったフローが想像できます。このフローを定める役割を担うのが、Workflowとなります。
つまり、Workflowを正確に理解することで、自分のイメージ通りにアプリを動かすことができるようになります。
それぞれの機能について
では、本題に移って2つのWorkflowの違いについて解説していきます。まず初めに、Create a new thing…とは、データベースに新しいThing(レコード)を作成するWorkflowです。
Bubbleでは、データはデータタイプごとに管理されています。Create a new thing…を実行すると、指定したデータタイプに新しいレコードが1件追加されます。
例えばUserや商品といったデータタイプに対して実行すると、それぞれ新しいユーザー情報や商品情報がデータベースに作成されます。先ほどとあまり変わらない説明ですね。ただ、Create a new thing…というのは本当にその名の通り、データベースの中に新しい情報をいれるための設定になります。
次にMake changes to thing…について説明していきます。Make changes to thing…は、すでに存在しているThing(レコード)を更新するためのWorkflowです。
新しいデータを作成するのではなく、既存のレコードに対して情報を追加したり、変更したりするときに使用します。どういうことかと言いますと、既存のデータベースの情報を書き換えたり、新たに情報を付け加える動作を起こしたいときに使います。例えば、オンラインショップのデータベースを考えた時、商品を購入したり販売したりするUserテーブル、商品の情報を蓄える商品テーブルがあるとします。この時、ユーザーAさんがオンラインショップでサッカーボールを購入すると、ユーザーAさんのデータベースの箱の中にサッカーボールという値が入ることになります。
ちなみにですが、このようにデータベースの中にまったく新しい情報を入れるためのWorkflowの設定が、先ほど説明したCreate a new thing…になります。話を戻して、サッカーボールを購入したユーザーAさんが、やっぱりいらないとサッカーボールを返品したとき、このように今ある箱の中の値に情報を付け加えたり、変更したりするためのWorkflowがMake changes to thing…になります。
整理すると、データベースの値が空っぽで、新しく情報を入れたいときは、Create a new thing…で操作し、データベースの中の値に情報を付け加えたいときや変更したいときに使うWorkflowが、Make changes to thing…になります。
経験談
なぜ当時自分がその二つの違いを理解できていなかったのかを考えると、データベースの構造を全く理解できていなかったことが最も大きな要因ではないかという結論になりました。当時の私は、データベースというのがあってそこに情報が入るということは認識していましたが、データベースのリレーションやリストはもちろんのこと、データベースの型すらも認識が怪しい状態でした。そのため、設定するWorkflowはどのデータベースに値を入れるためのもので、どんな意図があるのか理解できていませんでした。
まとめ
ここまで読んでくださりありがとうございます。どうだったでしょうか?とても退屈な記事になってしまいましたか?もしかすると私だけそのふたつのWorkflowの違いを理解できていなかったかもしれませんが、今回私がお伝えしたかったのは、データベースを理解することがいかに重要なのかということです。
初学者にとってはデータベースの型とは?リレーションとは?などなど理解するのに大変苦労しますが、データベースの構造を理解することで受けられる恩恵が大きいので、可能な限り早期にデータベースを理解することをおすすめします。