MENU

第4章 データベースの設計

bubbleチュートリアルver1第4章 データベースの設計

目次-全章

第1章 bubbleについて(bubbleの基礎知識からアカウントの作成、アプリ開発まで)
第2章 かんたんなアプリケーションを作成
第3章 ページレイアウト(UIデザイン)を作成
第4章 データベースの設計
第5章 ユーザー登録、ログインを試してみる
第6章 ユーザーログイン時の処理を実装してみる
第7章 ユーザー情報を更新、削除(退会、解約)できるようにしてみる
第8章 メールアドレス認証を実装してみる
第9章 パスワードの再設定、パスワードリセット機能を実装してみる
第10章 ユーザーがツイートできるようにする
第11章 ユーザーのフォロー機能、タイムライン表示機能をつくってみる
まとめ
目次

4.1 bubbleのデータベース設定について理解する

第4章では、アプリケーションで利用するデータを定義していきます。

第2章でも触れましたが、ビジュアルエディタの「Data」タブをおさらいしましょう。

Dataタブでは、ユーザーがアプリの使用時に作成するデータを管理します。アプリのデータベース内のデータを構成及び表示する場所です。いくつかのサブタブで構成されています。

サブタブ1「Data types」

アプリケーションのデータ型(データの種類)を定義します。既存のデータ型のリストが、左側に一覧表示されます。データ型を選択すると、そのフィールドが右側に表示され、そのデータ型に新しいフィールドを作成することができます。

サブタブ2「Privacy」

ユーザーがデータを表示できるルールを定義します。プライバシールールは、アプリケーションのデータプライバシーにとって非常に重要です。デフォルトでは新しいデータタイプは、通常全てのエンドユーザーに表示されるため、実際のエンドユーザーデータの処理を開始する前にプライバシールールを設定することが重要です。

サブタブ3「App data」

アプリケーションのデータベース内のデータが表示されます。表示する列や並び替え順、検索などを設定できます。

データベース内のデータを作成、変更、削除したり、一括アップロードやエクスポート、一括更新などもできます。

サブタブ4「Option sets」

アプリケーション全体で使用するためにユーザーが定義した特定のオプションセットのリストです。例として国のリスト、ユーザーの権限レベルのタイプなどが含まれます。データとは異なり、オプションはアプリケーション画面上から追加や削除ができません。テキスト型だけでなく、国番号を数字で登録するなど属性の追加が可能です。

サブタブ5「File manager」

アプリケーションの開発バージョンまたはライブバージョンのいずれかで、開発者またはユーザーがアップロードしたファイルまたは画像が表示されます。これらは定義されたデータ型またはオプションセットとは別に保存され、ここで管理できます。

▼データ型(フィールドの種類)

各タイプのフィールドには、「テキスト」「数字」「日付」などの他に、mysqlなど一般的なデータベースに存在しない特別なデータ型が利用できます。

リスト

bubbleでは1つのフィールドに複数のデータを保持することができます。例えばUserタイプにフォローというフィールドを作成し、自分がフォローしているユーザーの一覧をフォローフィールドに、ユーザーのリストとして保持することができます。

リレーションシップ

bubbleのフィールドは「テキスト」「数字」「日付」などのデータ形式の他に、別途作成した「Type」や「Optipon Sets」を指定できます。関連するデータという意味でリレーションシップと呼びます。

その他、今回のチュートリアルでは利用しませんが以下のようなデータ型が存在します。

・numeric range:数字の範囲

・yes/no : yesかnoの値

・date range:日付の範囲(契約期間などに利用)

・geographic address:地理的な住所(地図表示などに利用)

4.2 ユーザーテーブルの設計

データベースの設計で、bubbleでいう「Type」(データのまとまり)のことを一般的に「テーブル」と呼びます。また、テーブル内の各データ「Field」を「カラム」と呼びます。各テーブル内に作成されるデータを「レコード」と呼びます。

エクセルの表を想像すると分かりやすいですが、表全体をテーブル、各列をカラム、各行をレコードと考えてください。

本章以降、Typeは「テーブル」、Fieldは「カラム」と記載します。

必要なデータ項目を書き出す

第2章で簡単なアプリケーションを作成した際に、Userテーブルはアプリケーションの新規作成時に自動で作成されたフィールド(カラム)のみ存在していました。このUserテーブルにカラムを追加していきます。

mypageを確認して、必要なデータ項目を書き出します。

データ項目データの形式内容
ユーザー名テキストユーザーが入力する名前
ユーザー画像画像ユーザーのアイコン画像
表4.2.1 必要なデータ項目一覧

カラムを追加する

この項目をDataタブから作成します。

Dataタブに移動し、サブタブのData typesをクリックします。Custom data typesで「User」を選択します。

図4.2.1 Custom data typesで「User」へ

Create a new fieldをクリックし、以下のように入力します。

図4.2.2 新規フィールド作成例

カラム名は半角英字で入力するようにしましょう。

Field typeは日本語も英語でも入力できるようにするため、textを選択します。

同様にユーザー画像も設定します。

図4.2.3 新規フィールド作成例

Field typeはimageを設定します。ユーザーに画像をアップロードさせて、それを保存するようにします。jpeg、pngなどの画像ファイルが設定できるようになります。

パスワードのハッシュ化についての理解

bubbleではアプリケーションを新規作成すると自動的にUserテーブルが作成され、emailとpasswordのカラムが作成されています。

このpasswordの値は開発画面上からもワークフローからも確認することはできません。また、値は自動的にハッシュ化されています。

ハッシュ化とは特定の計算手法に基づいて、元のデータを不規則な文字列に置換する処理を指します。 第三者が不正にパスワードへアクセスしたとしても、ランダムな文字列に変換されていることで、悪用されるのを防くことができます。

ハッシュ化は暗号化とは異なります。暗号化された文字列は元の文字列に戻すことができますが、ハッシュ化は変換された文字列からもとのパスワードに戻すことはできません。

そのため、もしpasswordデータを確認することができたとしても、ハッシュ化された解読できない文字列となっています。

ログイン時のパスワードは、保存されているパスワードのハッシュ化された文字列と、ユーザーが入力したパスワードをハッシュ化した文字を比較し、一致していた場合ログイン可能としています。ただしこの処理はbubbleのワークフローアクションとして準備しているため、あまり意識する必要はありません。

パスワードポリシーの設定

パスワードポリシーとは、パスワードの文字列の長さや利用する文字種別を設定することで、パスワードのセキュリティを強化する目的で利用します。

パスワードポリシーを設定しないと、1文字のパスワードも許可されてしまい、第三者に不正アクセスされてしまう可能性が高まります。

パスワードポリシーを設定するには、ビジュアルエディタからSettingsタブを選択します。

Settingsタブのサブタブ「General」をクリックし、「Privacy & Security」の「Define a password policy」にチェックを入れます。

すると、最小文字数や文字種の選択が表示されます。

画像のようにチェックを入れて、以下のように設定します。

・8文字以上

・英数字を利用

英文字に大文字と小文字を混在させる場合は、Require a capital letterにもチェックします。

画像 4.2.4 パスワードポリシーの設定

4.3 投稿テーブルの設計

投稿テーブルについては、第2章3でツイート内容をtweetカラムに保存するようにしていました。

このテーブルをそのまま利用します。

4.4 最後に

第4章では、テーブルの定義方法について学びました。

後の章でフィールド形式の「リスト」や「リレーションシップ」について詳しく学んでいきますが、そういった項目が設定できることを覚えておいてください。

実際に働く社員とカジュアル面談しませんか?

【毎週金曜日開催中】カジュアル面談しませんか?


参加はこちら!
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

私たち株式会社ファンリピートは、ITを通じてお客様の課題解決を行うスタートアップベンチャーです。ノーコード・ローコードを用いたDX支援事業を主軸に、スピード感を持ってお客様のご要望にお応えしています。

2019年の創業から、出版業界・広告業界をはじめ、幅広い業界のデジタル施策を支援。財務管理・顧客管理などの基幹・業務システムから、新規Webサービスなど開発前検証フェーズのシステム導入支援まで、ワンストップでサポートを実施しています。この先も本質的なご提案を通じて、お客様の課題を解決し続けます。

コメント

コメントする

目次