backend(mBaaS)。データストアデータストアは一般的にはデータベースと呼ばれるものです。データベースというとRDBMS(リレーショナルデータベース)なのに対して、mBaaSではドキュメント型のNoSQLとなっています。それによって、データの関連性についても多少異なる手法を使った方が良いようです。今回はmBaaSにおける1対多のデータ管理法について紹介します。配列を使う方法リレーションを使うまとめACLを使う方法まず基本はACLを使う方法です。ACLとはアクセスコントールのことで、誰(またはどのグループ)が読み書きできるかを指定するものです。自分しか読み書きできないデータとして設定すれば、それはセキュアに個人のデータとして管理されます。ACLは複数指定できるので、自分だけでなくBさん、Cさん、Dさん...と指定することもできます。管理が煩雑になるであろうことは予想がつくはずです。そこでロール(グループ)を使います。データの読み書きできるロールを指定することで、後はロールさえメンテナンスすれば読み書きできる対象を一括してコントロールできます。ロールとユーザを組み合わせることもできるので、あるデータに対してだけ読み込み、または書き込み権限を与えると言ったことも可能です。配列を使う方法1対多のデータを管理する際に、あえて別なクラス(データベースでのテーブル相当)を作らない選択肢もあります。mBaaSではカラムの中に配列を入れられるので、複数あるデータをまとめて入れてしまうことができます。この場合、ACLは1レコードのデータに依存します。この方法は手軽な反面、メンテナンスが多少面倒になります。mBaaSでは配列操作を行うためのメソッドを多数用意していますので、ユニークであれば追加したり、指定した値を削除したりできます。リレーションを使う配列では管理しきれない、複雑なデータになったらリレーションを使うのが良いでしょう。リレーションは1対多の関連性を管理するための機能になります。これはあるクラスのデータ1件とあるクラスのデータ複数件を管理します。リレーションの欠点としては、データを一度に取得できないということです。1件のデータを取得し、そのリレーションとして複数件のデータを取得します。取り出されたデータはデータストアのオブジェクトなので、扱うのに不便はないでしょう。ACLとも組み合わせられます。まとめ1ユーザに依存するものであればACLを使うのが簡単です。ACLはログイン時に自動的に付与されるので、コードの変更も殆どいりません。簡単なデータで、新しいクラスを作るのが面倒であれば配列を使うのが良いでしょう。複雑なデータであればリレーションが便利です。Todo管理やランキングなどであればACLで十分かと思います。mBaaSではネットワークの通信回数を減らすのも大事です。mBaaSの特性を活かしたデータ管理法で快適なUXを提供してください。篤司NCMBエヴァンジェリスト。プログラマ、エンジニアとしていくつかの企業で働き、28歳のときに独立。2004年、まだ情報が少なかったオープンソースソフトの技術ブログ「MOONGIFT」を開設し、毎日情報を発信している。2013年に法人化、ビジネスとエンジニアを結ぶDXエージェンシー「DevRel」活動をスタート。Tumblr関連記事2019-03-29SwiftでNCMBを使う(リレーション編)mBaaSで用意されているデータストアの一歩進んだ使い方です。SDKでTodoアプリを作る(タスクをリレーションで管理する)前回はタスクを配列で管理する方法を紹介しました。この方法だ...2018-07-18Adminのみ閲覧可能なデータの作成・利用方法mBaaSではAclを使ってアクセス権限を制御できます。...2017-12-14mBaaSで作る業務システム「日報システム」(その4:コメント)mBaaSはスマートフォンアプリを作るのに最適です。地図アプリのベースに。Service)とは、スマートフォンアプリでよく利用される汎用的な機能をSDKとクラウドから提供するサービスです。backendのちょっと便利な使いかた・非公式SDKやアプリ開発の関連情報などをお届けするブログです。※記事内には、サポート対象外の内容も含みます。本ブログではコメント機能を公開しておりません。アプリ開発を行う上での課題解決には、ユーザーコミュニティやもくもく会などもご活用ください。LIMITEDスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。