通知

AppSheet will be conducting service maintenance starting Sunday, May 19th, 2024 at 12:00 PM (7:00 PM UTC) and completing no later than 4:00 PM PDT (11:00 PM UTC). Learn more

データ: 基本情報

AppSheet を使用すると、以下のセクションで説明しているように、お持ちのデータからアプリを作成できます。

はじめに: AppSheet で使用する Google スプレッドシートを準備する

AppSheet で使用する Google スプレッドシートを準備する方法をご覧ください。
関連情報: Best practices with Sheets and AppSheet

: この動画のコンセプトは現在でも有効ですが、AppSheet アプリエディタの UI は動画撮影時から変更されています。

Google スプレッドシートを AppSheet で使用するための準備

データを準備する

AppSheet を最大限に活用するには、アプリにとって利用しやすい形にデータを整えます。このトピックで説明している基本概念を理解すれば、データの管理が容易になり、アプリをよりよく活用できるようになります。

基本概念

まず、データに関する最も基本的な概念を確認しましょう。

データはレコードで構成されている

レコードはスプレッドシートで単一の行として格納されます。これはアプリにおける 1 件分のデータであり、個々の顧客、特定の現場、単一の商品などを表します。

ここで行う必要があるのは、各タイプのレコードを他のタイプのレコードと分離することです。そのためには、レコードのタイプごとに独自のテーブルが必要です。

[Customers]、[Job Sites]、[Products] テーブル

テーブルはレコードのコレクションである

テーブルは、同じタイプのレコードのコレクションです。たとえば、Customers テーブル(以下を参照)、Job Sites テーブル、Products テーブルを使用します。テーブルとは、人、もの、場所、イベントなど、現実世界の物事を擬似的に表すものだと考えてください。

[First Name]、[Last Name]、[Phone #] 列を含む [Customers] テーブル

列はレコードの属性である

各テーブルの行は、同じのセットを共有しています。これらの列は、レコードを説明する属性である、NameAddressDateID などのフィールドです。

各行の各列には独自の値が格納されますが、列構造全体がテーブル全体としてのパラメータと要件を決定します。

テーブルはフォームのようなものだと考えてください。フォームでは、フォームに入力する全員に同じ質問を提示しますが、回答は人によって異なります。このフォームからテーブルを作成する場合、各質問が列になり、各人の回答がそれぞれの行に入れられます。

一部が編集された [Customers] テーブル

データはどのように変更されるか

変更されるのは、テーブル内の行データです。アプリを使用する際には、新規 Customer の追加、既存の Customer の住所の変更、古い Customer の削除を行うことがあります。実際、アプリで行われるほぼすべての操作は、行の追加、更新、削除によって行われます。しかし、列の構造は変わりません。

必要なテーブルは何か

最初に行うべきことは、必要なテーブルは何かを見極めることです。複数の異なる質問があり、それぞれデータ型が異なるため、通常は複数のテーブルを使用します。

テーブルを作成するための優れた方法は、アプリ用のスプレッドシートを 1 つ作成して、テーブルごとにワークシートを追加することです。CustomersProject Locations など、テーブルに含まれるレコードの種類を基にワークシートに名前を付けます。

たとえば、本を管理する図書館アプリには、Books のテーブルと Checkouts のテーブルが必要でしょう。

[Books] テーブルと [Check-Out] テーブル

次に、各テーブルの列を決定します。各レコードに必要な情報は何ですか?どんな質問をする必要がありますか?

この図書館アプリの Books テーブルには、TitleAuthorPublisherCopyright 日付の列があります。Checkouts テーブルには、Checkout 日付、Return 日付、TitlePatron の名前、利用者の Email の列があります。

列が表示されている [Books] テーブルと [Check Out] テーブル

賢くふるまう: 繰り返しを避ける

多数の行で繰り返し使用される値を持つ列のセットがある場合、それらの列を独自のテーブルに配置することをおすすめします。

これらの列セットは通常、現在の行に関連する人または場所を示します。ここで、その情報を更新する必要があると考えてみてください関連するすべての行で 1 つずつ情報を変更しなければならないため、おそらくは途中でミスをおかすでしょう。

該当する情報を 1 か所に集めたほうがはるかに簡単です。幸いなことに、AppSheet では他の行から行を参照できます。これは次のセクションで説明します。

NameEmail という列を持つ、Patrons という新しいテーブルを作成しましょう。こうすることで、ある利用者が記録されているすべての Check Out 行でその利用者の情報を変更するのではなく、1 か所で情報を更新できます。

[Patrons] テーブルでは [Name] と [Email] が定義されており、[Check Out] テーブルによって参照されている

各行に一意の ID を付与する

各行を一意に識別できるのは重要なことです。列の一つを、行ごとに異なる値を持つ一意の識別子、つまり主キーとしてください。

これには、名前と住所を選ぶのが当然だと思われるかもしれませんが、常に最適な選択肢であるとは限りません。同じ名前の人物が複数人いる可能性や、住所が変更される可能性があります。これが、一見ランダムな顧客 ID や注文番号を使用する理由です。

同様に、すべてのテーブルに ID 列を設けることをおすすめします。

Patrons テーブルには、主キーとして使用する ID 列があります。こうすれば、Alex Green という名前の利用者が 2 人いる場合、この 2 人が偶然に相手のアカウントで本を借りることが防がれます。BooksCheck Out にも、それぞれ主キーとして ID 列が設けられます。

[Patrons]、[Books]、[Check Out] テーブルのすべてで、[ID] 列がキーとして設定されている

リストを避ける

スプレッドシートなどのテーブルでは、セルごとに 1 つの値しか格納できません。レコードのリストすべてを入れることはできません。たとえば、Cats 列を作成する場合、スプレッドシートの単一のセルに複数の猫をリストすることはできないため、回避策が必要です。

最初は、Cat 1Cat 2Cat 3 などの複数の列を使用するのが良い解決策だと思うかもしれません。しかし、こうして猫の数を決めてしまうと、後から新しい列を追加するのが難しくなる可能性があります。

より優れた解決策は、新しいテーブルを作成することです。必要なのが各行に 1 つの情報のみである場合、テーブルを丸ごと作成するのは愚かに思えるかもしれませんが、この方法は非常に柔軟です。参照列を使用して、この新しいテーブルの行を他のテーブルの行に接続できます。

[Friends] テーブルから参照列を使用して参照できる新しい [Cats] テーブル

レコード間の関係

複数のテーブルがある場合、たいていはなんらかの方法でそれらを接続する必要が生じます。あるテーブルの行にある、別のテーブルの行への参照を使用するか、または関連する行のリストを作成します。これらの関係は、参照または省略形で Ref と呼ばれる特別な種類の列を使用して作成されます。

Ref 列は、ある行の主キーをその値として取ります。列に Book のような名前を付けた場合、AppSheet は自動的に Books テーブルの行へのキーがその列に含まれているはずだと判断します。その場合アプリで、ある行からその関連行(およびその逆)に直接リンクできるようになります。

Check Out テーブルには、従来の Title 列ではなく、Book 列を含めるようにします。こうすることで、Check Out 行に本へのリンクが表示されるようになります。同様に、テーブルに Patron 列を含めると、Patrons テーブルの行を参照できるようになります。

[Check Out] テーブルの [Title] 列が [Books] テーブルを、[Patron] 列が [Patrons] 列を参照する

1 対多の関係

関連する行のリストを作成する必要がある場合、何も心配はいりません。AppSheet では関連する行のリストが自動的に作成されます。

Books テーブルのレコードにレビューのリストを含める場合は、各 Review レコードから本を参照する必要があります。そうしてアプリで本を確認すると、関連するレビューのリストが表示されます。

次に、Reviews テーブルを追加します。このテーブルには、IDBookReviewerStar RatingComments の列があります。Books テーブルには何も追加する必要はありません。アプリで本を確認すると、関連する Reviewer 行へのリンクが表示されます。

[Reviews] テーブルの [Book] 列が [Books] テーブルを参照し、[Reviewer] 列が [Patrons] テーブルを参照している

多対多の関係

各レコードにもう一方のテーブルのレコードのリストが含まれている 2 つのテーブルが必要な場合は、もう少し高度なトピックが関わってきます。これを行う方法については、他のさまざまなこととあわせて、データ モデリングやデータベースの設計についてのより一般的なガイドで学ぶことができます。次に紹介するのは AppSheet 固有のガイドではありませんが、書かれている原則は同様に当てはまります。

スプレッドシートにデータを配置する

ここまではデータの整理方法について学びました。次に、スプレッドシートの設定方法に関するヒントをいくつかご紹介します。5 Tips for Building Better Spreadsheets for your AppSheet Mobile Apps をご覧ください。

スプレッドシートにデータがある場合、AppSheet がヘッダーとして認識できるように、列ヘッダーが太字になっていることを確認してください。

太字のヘッダーが表示されているスプレッドシート

さらにこれらの列には、明確で具体的な名前が付けられていることに注目してください。これは、列に ColumnColumn1Column2 という名前を付けるよりもはるかに役立ちます。

列の各セルでデータ型の形式が一貫していることを確認します。新しいデータは新しい行として追加する必要があります。AppSheet において、新しいデータとして解釈できるのは行のみです。列として追加された場合は機能しません。

要点: AppSheet が単一のテーブルを情報のメインソースとして読み取っていることを確認します。非構造化データ、多形式の列、テーブル外のデータの使用は避けます。

 AppSheet でデータを管理する

次のようにして AppSheet でデータを管理します。

この情報は役に立ちましたか?

改善できる点がありましたらお聞かせください。
検索
検索をクリア
検索を終了
メインメニュー
3034131871114247716
true
ヘルプセンターを検索
true
true
true
false
false