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

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

監修者

著者の写真

竹村貴也

株式会社ファンリピートCEO

ベンチャー企業でのシステム開発経験を経て、フリーランスとして多数の企業のプロジェクトマネジメントに携わる。2019年に株式会社ファンリピートを設立し、ローコード開発、AIを活用した業務効率化ソリューションの開発・提供を手がける。
著書:「ChatGPTによるPythonプログラミング入門. AI駆動開発で実現する社内業務の自動化


ノーコード/ローコードやAI関連の情報をお届け
無料のBOLTメールマガジン

不定期でノーコード/ローコードやAI関連のお役立ち情報をお届けするメルマガです。

  • ノーコード/ローコードの基礎・応用情報がわかる
  • 個人利用やビジネスで生かせるAI活用方法がわかる
  • 限定オファーや資料公開、ウェビナー情報がいち早く届く

ノーコード/ローコードを用いたシステム開発やAI利活用に興味がある方はぜひご登録ください!

目次

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章では、テーブルの定義方法について学びました。

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

\ 高品質×高速開発 /
ノーコード・ローコード開発ならBOLT

「Webアプリケーション開発を高品質かつ高速で依頼したい…」そんな方に弊社のBOLTをご提案します。

  • 企画・提案力を武器にした上流工程支援
  • 高品質と高速を両立する開発支援
  • お客様第一の進行管理
  • 継続的なアップデート体制

システム開発の内製化やDXでお悩みの方はぜひご相談ください!

  • URLをコピーしました!

お役立ち資料



資料請求はこちら

資料請求

お問い合わせはこちら

お問い合わせ
目次