ノーコードツールAdalo
前回、ノーコードツールAdaloのデータベースのプロパティとコレクションに関して解説しました。
今回はデータベースのリレーションシップという機能を見ていきましょう。
リレーションシップとは二つのコレクションを繋げて使う機能のことで、それぞれのコレクションに含まれるデータを連携させて使うことができるようになります。
なかなかイメージしづらいので、とりあえずは試していきましょう。
事前準備
まずは2つのコレクションを作成し、リレーションシップを試す準備をしていきます。
新しいアプリを作成した時点で「Users」というコレクションが既に登録されています。
まずはこれにデータを追加していきます。
「Users」の右側にある「0 Records」をクリックします。
コレクションのテーブルが開きますので、「+ADD USERS」をクリックします。
データを入力する欄が表示されますので、それぞれのプロパティにデータを入力していきます。
今回は試しということでEmailを「test1@test.com」、Passwordを「1234」、Usernameを「test1」、Full Nameを「test1」としました。
入力し終わったら「SAVE」をクリックします。
これで「test1」のユーザーを登録できました。
同様にして「test2」、「test3」を登録しました。
次にもう一つのコレクションを作成していきます。
もう一つのコレクションは「曜日」をまとめたものにしましょう。
「+ADD COLLECTION」をクリックします。
Collection Nameに「DayOfWeek」(曜日)と入力し、「ADD」をクリックします。
「DayOfWeek」の横にある「0 Records」をクリックします。
「+ADD DAYOFWEEK」をクリックし、Nameをそれぞれ月曜日から日曜日と入力します。
これで1週間の曜日のコレクションができました。
リレーションシップの追加1:1対多数
それではリレーションシップを追加していきましょう。
「Users」の「+ADD PROPERTY」をクリック。
「Relationship」の「DayOfWeek」をクリックします。
するとどのようなリレーションシップを作成するか選択画面が出てきます。
詳しくはあとから見ていきますが、上から「1対多数」、「多数対1」、「多数対多数」となります。
まずは「1対多数」である一番上の項目を試してみます。
項目をクリックして選択したら、右下の「DONE」をクリックします。
これで新しいリレーションシップが追加されました。
Usersのコレクションを開いてみると「DayOfWeek」という列が追加されています。
「test1」を開いてみると、一番下に「DayOfWeek」の選択欄が増えています。
「DayOfWeek」のプルダウンメニューを開いてみると、先ほど「DayOfWeek」のコレクションで追加した月曜日から日曜日までの曜日が表示されました。
そしてその曜日のリストの中から一つだけ選択することができます。
test1からtest3まで適当に曜日を選択してみました。
そして「DayOfWeek」のコレクションを見てみると、それぞれの曜日の「Users」の列に「2 Users」とか「1 User」と表示されています。
「2 Users」と書かれている「日曜日」のデータを開いてみると、先ほどDayOfWeekで日曜日を選択したユーザー名が表示されています。
つまり「1対多数」では「Users」の項目は「DayOfWeek」の項目の一つのみを選択でき、逆に「DayOfWeek」の項目は「Users」の複数の項目を選択できるリレーションであることが分かります。
次に「多数対1」を試していくので、一度作成したリレーションシップを削除しておきます。
Usersコレクション内のDayOfWeekプロパティ(リレーションシップ)の右にあるゴミ箱マークをクリックします。
確認ウインドウが出てくるので「OK」をクリックします。
これで削除できました。
リレーションシップの追加2:多数対1
次に「多数対1」を試してみましょう。
先ほど同様にリレーションシップを作成していきますが、今回はリレーションシップの選択画面で真ん中を選択します。
そして先ほど同様「Users」のユーザーのデータを開いてみましょう。
すると「DayOfWeek」の行があるのですが、グレーアウトして入力することができなくなっています。
DayOfWeekの行の下に英語で、「DayOfWeekのUserでアップデートできます」と書かれているので、「DayOfWeekコレクション」を開いて、その中のデータを一つ開いてみます。
すると「User」の行が追加されており、そのプルダウンメニューには登録されているユーザーが記載されており、一つだけ選択することができるようになっています。
ということで各曜日に対して、ユーザーを割り振ってみました。
これで「Usersコレクション」を開いてみると、DayOfWeekの中に「1 DayOfWeek」とか「2 DayOfWeek」とか書かれています。
「3 DayOfWeek」と書かれている「test1」を開いてみます。
するとtest1が選択した、曜日(日曜日、土曜日、金曜日)が表示されています。
つまり「多数対1」のリレーションシップでは、「Users」の項目は「DayOfWeek」の複数の項目を選択できるが、「DayOfWeek」の項目は「Users」の一つの項目しか選択できないリレーションシップであることが分かります。
次に「多数対多数」のリレーションシップを試すので、再度「Usersコレクション」の「DayOfWeekプロパティ」を削除しておいてください。
リレーションシップの追加3:多数対多数
最後に「多数対多数」のリレーションシップを試してみましょう。
リレーションシップの選択画面で、一番下を選択します。
「Usersコレクション」で一つのユーザーを選択してみると、「DayOfWeek」の項目があり、曜日が選択できるようになっています。
先ほどの「1対多数」の時と異なり、何回も選択することで、複数の曜日を追加することができます。
「DayOfWeek」の項目を見てみると、こちらには「User」の項目があり、こちらでは登録されたユーザーを選択できるようになっています。
またこちらも複数のユーザーを追加できるようになっています。
「DayOfWeekコレクション」で各曜日に対して、適当にユーザーを登録してみました。
これで「Usersコレクション」を見てみると、複数の曜日が登録されているのが分かります。
この例の場合、「test1」には「日曜日、土曜日、金曜日、木曜日、水曜日」の5つの曜日が登録されています。
つまり「多数対多数」のリレーションシップは、「Users」の項目も「DayOfWeek」の項目もお互いが複数の項目を選択できるリレーションシップであることが分かります。
今回リレーションシップを見て、3つのリレーションシップがあることが分かりました。
これらはどういうアプリを作成するか、またどういう動作をさせるかによってどれを使うかが変わってきますので、何度も使ってみて、慣れていくのがいいでしょう。
次回はアプリ上からコレクションにデータを追加する方法を見ていきましょう。
ではでは今回はこんな感じで。
コメント