はつねの日記

Kinect, Windows 10 UWP, Windows Azure, IoT, 電子工作

Fujitsu Research PortalでAPIを試そう

Fujitsu Research PortalでWebアプリやAPIを試すには簡単な登録が必要です。
登録には過去記事が参考になりますので、まだ、登録がお済ではない場合は、下記の記事を先にお読みいただけると幸いです。
hatsune.hatenablog.jp

手のひら静脈認証(カメラ生体認証)AI [API]

富士通手のひら静脈認証は、ノートPCや銀行ATM、入退出ゲート認証などに使われています。

これまでの手のひら静脈認証手のひらをタッチさせるような感覚で認証できる世界最小・最薄の非接触型静脈センサーを実用化 : 富士通フロンテック

発表当時は専用のセンサーデバイスが必要でしたが、Fujitsu Research Portalで公開されている最新の技術では、ウェブカメラやスマートフォンなどの一般的なカメラで手のひら静脈認証を実現しています。
お試しWebアプリも公開されていますので、ノーコードで試すことも可能です。
hatsune.hatenablog.jp

今回はAPIでの使い方を調べていきます。

今回のAPIについて

生体認証APIを使うには、手のひらの撮影用Windowsアプリの実行が別途必要です。この撮影用アプリで撮影した画像を使って、静脈情報の登録と、登録した本人を照合する1対1認証を試行することができます。
撮影用APIは提供されていませんが、APIの使い方はシンプルです。Fujitsu Reseach Portalでのお試しAPIの使い方を学ぶのに適したAPIとなっています。

早速使ってみよう

Fujitsu Reseach Portalにログインした状態で「カメラ生体認証」に移動すると、ページの下の方に「デモアプリ」「API」というボタンがあるので、一番下までページをスクロールして「API」ボタンをクリックしましょう。

撮影用アプリの実行

撮影用アプリのダウンロード

API」ボタンを押すと次のような画面が表示されます。

「EXE」のところをクリックすると撮影用アプリのダウンロードが始まります。
1. ダウンロードの警告が表示された場合は[・・・]のところをクリックしてメニューを表示し、[保存]を選択します。


2. 次に[表示数を増やす]をクリックしてから、[保持する]を選択します。

少々面倒に感じるかもしれませんが、意図しない実行ファイルのダウンロードによるウィルス感染を防止するための手順となります。
なお、「ブラウザ」側の機能になりますので、今回使用しているMicrosoft Edge以外のブラウザを使っている場合は操作など詳細異なる場合があります。

ダウンロードしたファイルのプロパティ変更

ダウンロードしたファイルはエクスプローラーで右クリックしてメニューを表示し、[プロパティ]を選択して、ファイルの実行を[許可する]にチェックをいれておきます。

撮影用アプリでの手のひらの撮影

撮影用アプリを起動したら画面上のガイダンスに基づいて、手のひらを画面に映します。

正しい位置をキープできたら「OK」と表示されるので、右下にある[保存]ボタンで保存します。
保存したファイルは、撮影用アプリと同じフォルダに「regist」サブフォルダが自動的につくられてその中に保存されます。

APIを使ってみよう

撮影用アプリで手のひら画像が撮影できたらAPIを使って登録や認証を行ってみましょう。
EXEをダウンロードした画面には「APIを試す」と「ドキュメント」のボタンもあります。

APIを試す」をクリックすれば、Web画面からノーコードでAPIを試すことができます。

カメラ生体認証AI API を試そう(登録)

左側のメニューから「POST 静脈データを登録する」を選ぶと登録用の「TRY IT」ボタンが表示されます。

「TRY IT」ボタンをクリックするとリクエスト時のHeaderやBodyの指定画面が現れます。

「Authentication Flow」で「authrization_Code」を選択すると認証が実施され、「Authorization Header」が設定されます。
登録用に撮影した手のひら画像をファイルとして指定します。
あとは「Send」ボタンをクリックすれば登録されます。

なお、実際のAPIの呼び出し方法は、次のURLの対して、BODY部分に撮影済の手のひら画像のファイル名を指定してPOSTとなります。

https://apigateway.research.global.fujitsu.com/vlcb/research/vein

カメラ生体認証AI API を試そう(照合)

左側のメニューから「POST 静脈1:1認証をする」を選ぶと認証用の「TRY IT」ボタンが表示されます。

「TRY IT」ボタンをクリックするとリクエスト時のHeaderやBodyの指定画面が現れます。

「Authentication Flow」で「authrization_Code」を選択すると認証が実施され、「Authorization Header」が設定されます。
あとは、登録時と同じ側の手のひらを撮影した画像ファイルを指定します。
必ずしも登録時と同じ画像ファイルである必要はありません。
あとは「Send」ボタンをクリックすれば認証されます。

C#からAPIを呼び出す方法

  1. Fujitsu Research PortalのID/パスワードを使ってトークンを取得
  2. 取得したトークンを使ってAPIを呼び出す

「TRY IT」からのお試しではなく、自前のプログラムコードから呼び出すには、認証⇒実行の2Stepのコードが必要です。

C#から照合を試そう

登録APIの「TRY IT」で事前に手のひらを登録しておきます。
またトークン取得は後回しにして、「ユーザ情報」画面にある「Get Token」ボタンをクリックしてトークンを取得しておきます。

準備が整ったら、次のようなコードでAPIを呼び出して照合します。
gist.github.com
なお、実行時には事前に下記の変数に値を設定しておきます。
変数名「this.Token」には、「Get Token」で取得したトーク
変数名「this.FileName」には、手のひら画像のフルパス名

トークンを取得しよう

Fujitsu Research PortalAPIを使うためには、ポータルに登録したときのIDとパスワードを使ってトークン(JWT:JSONWeb Token)を生成してAPI呼出し時のヘッダーに指定して認証します。
カメラ生体認証AIのAPI用のJWT認証するための情報は掲載されていませんでしたが、「ユーザ情報」画面にある「Get Token」ボタンでのリクエストと同じことをコードから実行すれば取得は可能です。
gist.github.com

1. WebViewコントロールをアプリ画面に埋め込み、「Get Token」のURLを表示することで認証画面を表示します。

2. Fujitsu Research PortalのIDとパスワードで「ログイン」に成功したときに取得できるトークンを応答から切り出します。

おわりに

APIを使う場合、Fujitsu Research Portalを使うと「TRY IT」で呼び出し方法を確認してからコードを書くことができるので、API呼び出し方法も理解しやすく、実際にコードを書く時の助けにもなります。
手のひら画像を作成するところもAPI化されるといいのですが、APIの使い方の基礎を学ぶ教材としてはわかりやすいものですので、ぜひ、C#以外のコードでも試してもらえると幸いです。

Microsoft Ignite 2024:Meta Questヘッドセットで体験する未来のWindows 11

Microsoft Ignite 2024をオンライン視聴しているのですが、出てきた情報をみて現地参加したかったと思ってしまったのが、BOOK OF NEWSに記載されていた次の1文です。

Windows in mixed realityは、Meta QuestヘッドセットにWindows 11の全機能をもたらします。生産性とコラボレーションを強化するために、Windows in mixed realityは、高解像度モニター上で慣れ親しんだ信頼できるWindowsエクスペリエンスへのアクセスをこれまで以上に容易にします。仮想会議への参加、共有スペースでの作業、物理的な環境でのデジタルコンテンツとの対話など、Windowsとメタクエストを組み合わせることで、生産性のための強力なツールが提供されます。この機能は12月にプレビュー版がリリースされます。

ショート動画も公開されていますので、「これだ!」というところのURLを紹介します。
youtu.be
物理ディスプレイの制約なく複数ディスプレイで作業できるの最高ですね!
Windows 365としての提供のようです。
Windows 365は、WindowsOSを提供するSaaSです。クラウド PC の形で完全な Windows エクスペリエンスを提供するということなので、Questの中でWindows 11でできることがほぼできるという感じになるようです。
www.microsoft.com

これは便利!富士通の手のひら認証を試してみる

Fujitsu Research PortalでWebアプリやAPIを試すには簡単な登録が必要です。
登録には過去記事が参考になりますので、まだ、登録がお済ではない場合は、下記の記事を先にお読みいただけると幸いです。
hatsune.hatenablog.jp

手のひら静脈認証(カメラ生体認証)AI [WebApp]

富士通手のひら静脈認証は、ノートPCや銀行ATM、入退出ゲート認証などに使われています。

これまでの手のひら静脈認証手のひらをタッチさせるような感覚で認証できる世界最小・最薄の非接触型静脈センサーを実用化 : 富士通フロンテック

発表当時は専用のセンサーデバイスが必要でしたが、Fujitsu Research Portalで公開されている最新の技術では、ウェブカメラやスマートフォンなどの一般的なカメラで手のひら静脈認証を実現しています。
APIも公開されていますが、同時に公開されているWebアプリでどんな感じの技術か試してみます。
documents.research.global.fujitsu.com

特徴的な機能

スマホやPCのカメラを利用して、静脈情報の登録と、登録した本人を照合する1対1認証を試行することができます。
この技術が実装されたスマホやPCを使うときは、カメラに手をかざすだけでログインができるようになるわけです。指紋のようにスライドする必要もないし、顔認証のようにマスクや眼鏡、顔の向きなど(そもそもカメラの前に顔を持っていくために体全体を移動させる必要もない)を調整する必要もありません。

早速使ってみよう

Fujitsu Reseach Portalにログインした状態で「カメラ生体認証」に移動すると、ページの下の方に「Webアプリはこちら」「技術のお試しはこちら」というボタンがあるので、一番下までページをスクロールして「Webアプリはこちら」ボタンをクリックしましょう。
「Webアプリはこちら」ボタンを押すと次のような画面が表示されます。

利用規約の同意

「技術を試す」というボタンをクリックすると、個別の利用規約が初回利用時に表示されるので同意します。

アプリを試す

利用規約に同意すると「技術を試す」という表記が「アプリを試す」に変わります。

カメラの許可

「アプリを試す」をクリックすると、カメラの利用許可が表示されるときがあるので、「許可」します。

メニュー

カメラを許可して画面にカメラ映像がリアルタイム表示されるのを確認したら、ページ下の「メニュー」ボタンをクリックしてみましょう。

使い方は簡単です。

  • 登録:手のひらの登録
  • 照合:登録した手のひらとの照合
  • 削除:登録した手のひらの削除
カメラ生体認証AIを試そう(登録)

メニューの「登録」ボタンをクリックするとカメラ映像が表示されて、映像が「手のひら」かをリアルタイム判断して、手の位置や距離(大きさ)を指示してくれます。

画面に表示されているガイダンスに基づいて手の位置を調整して丁度良い位置になれば勝手に登録プロセスに移って「OK」と表示されます。

なお、登録は複数回可能ですので、両手を登録することができます。

カメラ生体認証AIを試そう(照合)

メニューの「登録」ボタンをクリックしてカメラ映像がでたら、画面のガイダンスに基づいて手の位置を調整します。
手のひら以外が映っていると「指をまげずに手のひら全体を」とガイダンス表示されます。

ガイダンス通りに手をカメラの前にかざして、位置や距離を調整しましょう。
丁度良い位置になれば、体感1~2秒で即座に認証が行われます。

もちろん、他の人の手や同一人物でも登録していない側の手を照合すればNGとなります。

カメラ生体認証AIを試そう(削除)

試し終わったら、削除をクリックしてデータを削除しましょう。

おわりに

次回は、今回試したWebアプリの機能がAPIとしても提供されているので、そのAPIを紹介する予定です。

Fujitsu Reseach Portalで、対話型生成AIのWebアプリを試そう

Fujitsu Research PortalでWebアプリやAPIを試すには簡単な登録が必要です。
登録には過去記事が参考になりますので、まだ、登録がお済ではない場合は、下記の記事を先にお読みいただけると幸いです。
hatsune.hatenablog.jp

お試しお勧め:対話型生成AI [WebApp]

Fujitsu Research Portalには、思った以上に様々なWebアプリが公開されていてどれから試そうか迷いますよね。
そんなときにお勧めなお試しWebアプリが「対話型生成AI」です。
documents.research.global.fujitsu.com
利用できるAIモデルは、GPT-3.5、GPT-4o、Claude Instant、Fugaku-LLM(CPU版)となっています(2024/09/30現在)。

特徴的な機能

生成系AIを使った他のチャットボットと比較して特徴的なのは「ハルシネーション」検出機能がある点です。
ハルシネーションとは、幻覚とも日本語訳される生成系AIでは避けて通れない、「データに基づかないもっともらしい誤り」のことです。
想像力豊かな回答をするAIだなーともポジティブに捉えることもできるのですが、それが「想像力豊か」なのか「現実なのか」の判断は、ひとえに回答をもらった人の経験値によって差が出てしまうので、「想像力豊かなのですが」と断りをいれて回答をしめしてくれるのは助かりますね。

早速使ってみよう

対話型生成AI」ページの一番下に「技術のお試しはこちら」というボタンがあるので、一番下までページをスクロールしてボタンをクリックしましょう。
これ、左サイドメニューに「お試し」ってメニューつけてほしいところですね。
「技術のお試しはこちら」ボタンを押すと次のような画面が表示されます。

利用規約の同意

個別の利用規約がありますので、初回利用時に表示されるので同意します。

アプリを試す

利用規約に同意すると「技術を試す」という表記が「アプリを試す」に変わります。

login

ログイン画面が表示されたら[login]をクリックします。

Create New Chat

ログイン直後の画面は次のようになっています。

[Create New Chat]をクリックした新しいチャットを開始します。
チャット開始時にはチャットのスタイルを選択します。

  • Chat name:チャット名を指定
  • Flow:シンプルチャットなのか、ドキュメントを参照してのチャットなのかを選択します。
  • Retriever:ドキュメント管理機能で登録したドキュメントを指定します。
  • Model:モデルを選択します。

[Create]ボタンをクリックすると新しいチャットセッションが開始されます。

対話型生成AIを試そう

GPT-4oを使って、Fugaku-LLMで動作させて、FUJITSU-MONAKAでARM版Windowsが動くか聞いてみましょう。

ARM版Windowsをサポートしているという情報は現時点ではないと教えてもらいました。また、デスクトップOSを動作させることを前提としていないということも回答しています。

「ハルシネーション」検出機能を試してみよう

それではこの回答について、「ハルシネーション」検出機能を使って、どれくらい信用してよいかを確認してみましょう。
確認は簡単で回答にある縦マークをクリックします。

結果は次のように、回答の主張は正当であり他の意見とも一致しているため「ハルシネーションスコア」は0となっています。これが100に近ければ近いほど「ハルシネーション」が含まれていることになります。

その他のお勧め

APIが公開されている「Fujitsu AutoML」「ConnectionChain」「シェアドモビリティ最適配置」なども試したいところです。
次回の投稿では、APIで試せるものをとりあげる予定です。

Fujitsuの最新AIの成果を無料で試せるのを知っていますか?

Fujitsu Research Portalをご存じでしょうか?
portal.research.global.fujitsu.com
富士通の先進技術を、様々な用途で、いち早くお試しいただく環境として、技術コンポーネントAPIやWebアプリケーションを無償で公開しています。
製品の無料評価などはありますが、日本企業で、このような先端技術を体験できる取り組みはまだまだ珍しいのではないでしょうか。

Fujitsu Reseach Portalで試すには

アカウント作成

アカウント作成開始

Fujitsu Reseach Portalの利用にはアカウントが必要です。まずは、ポータル上部の[アカウント作成]をクリックします。

個人情報取り扱い

個人情報を適切に取り扱う(他に流通させない)旨の内容に合意します。

アカウントの種類の選択

法人利用の場合、事前にPoc IDの払い出しが必要ですが、富士通と企業通しの連携を正式に進めている場合以外は、業務のための調査のような場合も含め、「個人利用」でアカウント登録します。

サインアップを選択

富士通の従業員の場合は、SSOでサインインできるようですが、社外利用者の場合は[サインアップ]を選択します。

確認コード送信

メールアドレスを入力して、[確認コードを送信]して、メールアドレスが正しいかを確認します。

入力するとメールが送信されますので、メールの内容を確認します。

メールに記載されたコードを入力します。

アカウント名などの入力

アカウント名、パスワード、氏名を入力してアカウントを作成します。

電話番号認証

本人確認という意味でSMSによる確認を行うので、スマホの電話番号の先頭の0を除いて入力します。このSMSによる本人認証はアカウント登録時以外も随時実施されます。

スマホのSMSに届いたコードを入力します。

作成完了

無事にアカウントが作成できたら自動的にログインが行わて、ポータルのヘッダが変化します。

デモやAPIが試せるもの一覧(2024/09/30現在)

ポータルの内容は日々拡充されています。
動画で詳細を知ることができるものもだけではなく、WebアプリやAPIを試せるものを数を多くあります。
ポータルを見ると、5つの分類(AI、Data & Security、Converging Technologies、Computing、Network)ごとにまとまっていますが、これは、「Fujitsu Technology and Service Vision | 富士通」 に書かれている5つの重点技術領域に相当します。

AI Fujitsu Kozuchi (R&D)


Fujitsu Kozuchiは、富士通が研究開発した先端AI技術です。公開されている研究開発版の技術をWebアプリやAPIで試せるものとしては次のようなものがあります。

  1. Fujitsu AutoML [WebApp][API]
  2. Fujitsu Auto Data Wrangling [WebApp]
  3. TDA時系列異常検知 [WebApp]
  4. Wide Learning [WebApp]
  5. 因果発見 [WebApp]
  6. 対話型生成AI [WebApp]
  7. AI Trust (AI Ethics, Security) [WebApp]
  8. Actlyzer [WebApp]
  9. マルチカメラトラッキング [WebApp]

Data & Security


富士通では、次世代インターネットや生成AIの普及に伴う新たなデータ流通・活用技術と、その裏に潜む様々な脅威やリスクに対応できる先進セキュリティ技術の研究開発を行っており、WebアプリやAPIで試せるものとしては次のようなものがあります。

  1. 透過的トラスト [WebApp]
  2. Data e-TRUST [WebApp]
  3. ConnectionChain [WebApp][API]
  4. カメラ生体認証 [WebApp]
  5. Trustable Internet [WebApp]
  6. Robust Localization based MFA [WebApp]
  7. Federated SNS [WebApp]
  8. VC-Token Federation [WebApp]
  9. ゼロ知識エビデンス技術 [WebApp]
  10. セキュリティ監査自動化 [WebApp]
  11. マルチカメラトラッキング [WebApp]

Converging Technologies


富士通は、デジタル技術と人文科学の知見を融合し、物理とデジタルの境界がない世界における社会的課題の解決を目指しており、デジタルツインとして、WebアプリやAPIで試せるものとしては次のようなものがあります。

  1. シェアドモビリティ最適配置 [WebApp][API]

Computing

Coming soonとのことで今後更新されたら改めてご紹介します。
富士通のいうとろのComputingとは、AI Computing Broker、FUJITSU-MONAKA、HPC、量子コンピューター、量子シミュレーターなどが該当します。量子コンピューターというとデジタルアニーラとかでしょうか。
このあたりの研究成果や、どのようなお試しができるようになるのか、今から楽しみですね。

FUJITSU-MONAKAとは

FUJITSU-MONAKAって初めて聞いたので、ちょっと脇道にそれてしまいますが調べてみました。
www.fujitsu.com
コードネーム「FUJITSU-MONAKA(ふじつうもなか)」は、富士通が2027年度提供に向けて開発中の次世代プロセッサーのことだそうです。ARMベースということは、富岳テクノロジーから派生でしょうか。
FUJITSU-MONAKA搭載のノートPCとかが登場してARM版WIndowsが動いて、「Copilot+PC」にラインナップされたりしたら胸熱ですね(妄想過多でしょうか)。
www.microsoft.com

Network

6G、ソフトウェア基地局、Open RAN、インテリジェントネットワーク、光電融合、ディスアグリゲーテッド・コンピューティングなどが該当する領域です。
どのようなものが登場するか、ちょっとわからない分野になりますが、こちらも情報が更新されたら改めてご紹介したいと思います。

お試しお勧め:対話型生成AI [WebApp]

hatsune.hatenablog.jp

お試しお勧め:カメラ生体認証AI [WebApp]

hatsune.hatenablog.jp

お試しお勧め:カメラ生体認証AI [API]

hatsune.hatenablog.jp

世の中の動向

AIは不思議なもので、説明を聞いてみても理解はしても肌感覚として理解するためには、実際に問題をそのAIで解決してみるというStepが非常に重要です。
そのことを理解しているAzureやAWSなど、クラウド上でAIサービスを展開している海外ベンダーは、AIを手軽に試せる仕組みを用意しています。
また、製品化前のものも積極的に試せるような情報発信に力を入れています。
このような施策により、AIを使った時の第一印象から「面倒」「大変」のようなネガティブ要素を排除して、「これはすごい」ということが強く残るようになっています。
「初見から気に入りました!」
数ある中から自社AIを選んでもらうためには、または、そのときは選ばなくても、何かあったときに再見してもらうためには、このような印象が重要なのではないでしょうか。

おわりに

今回ご紹介した取り組みは、パーパス(社会における企業の存在意義)として「イノベーションによって社会に信頼をもたらし、世界をより持続可能にしていくこと」を掲げる富士通らしい取り組みといえるでしょう。
www.fujitsu.com
利用するのに住所などは不要なので、気軽に試すことができます。
この機会に登録だけでもしておくとよいのではないでしょうか。

Thunkable でSNSを作ってみよう(テーブル編)

前回:
hatsune.hatenablog.jp

前回の記事で、SNSを作るときの変数について取り上げてみました。
その中で、Firebaseというクラウド上のデータベースとつないだ「Cloud Variable」という変数についてとりあてました。
今回は、クラウド上のデータベースにどのように保存しておくとSNSをつくれるのかについて説明していきます。

現在、Firebaseには認証用の「Authentication」テーブルと、ユーザー管理用の「Users」テーブルの2つのテーブルがあります。
「Authentication」テーブルは、Firebaseで「FireBaseプロジェクト」を構成してサインインの方法を指定すると自動的に作成されるテーブルで次のような形をしています。

少し専門的な表記となりますがER図という形で上のテーブルを表記してみると次のようになります。

PKは「プライマリキー」または「主キー」と呼ぶものになります。
PKはそのテーブルで行を特定するものになります。

「Users」テーブルはThunkableアプリの「Cloud Variable Users」と対になるテーブルになります。そのテーブルの形はThunkableで定義します。

こちらもER図で表記してみましょう。

「Users」テーブルでPKは「ID」としています。「Users」テーブルにおけるPKとは「だれが」と言い換えることができます。
それでは、なぜ「メールアドレス」ではなく「ID」を使って「だれが」としているのでしょうか。
それは、あとからメールアドレスを変更できるようにするためです。
もし、メールアドレスを使って「だれが」を特定できるようにしてしまうと、あとからメールアドレスを変えるたびに「だれが」という値をそこらじゅうのテーブルから探して書き換えないといけなくなります。
そのため、人の目に触れないIDという項目を作って、メールアドレスとは別に管理しているのです。
それでは、このIDというのはどこで入力するのでしょうか。
実は、「Users」テーブルのIDは人が入力するものではなく、Firebaseが自動的に作った値を採用しています。

そのあたりの関係をER図では「Authentication」テーブルと「Users」テーブルの間のRelation(リレーション)という線で表現できます。

例えば、ER図の次の表記は、「Authentication」テーブルの「ユーザーUID」と「Users」テーブルの「ID」は同じ値を入れることで「1対1」であること、つまり「Authentication」テーブルの1行と「Users」テーブルの1行がペアになっているということを表しています。

それでは、なぜ、「Authentication」テーブルの他に「Users」テーブルが必要なのでしょうか。
なぜ、「Users」テーブルが必要かといえば、「Authentication」テーブルはFirebaseが自動的に作成するテーブルのため、アプリを利用する人の「姓」「名」などを保存する項目を追加できないためです。そのため、アプリが必要とする利用者1人1人の情報は「Users」テーブルを作ってあげて、そちらに保存する必要があるからです。

つぎにSNSへ投稿した内容を保存するテーブルを考えてみましょう。
投稿内容に必要なのは「内容」「投稿日時」「投稿した人」などが最低限必要です。
「Tweets」テーブルに「内容」「投稿日時」「投稿した人」をいれてみましょう。

「ID」が「だれが」つまり「投稿した人」なので「Users」テーブルと関係づけてみましょう。
1人の人が投稿できるのは1つではないので、「Users」テーブルと「Tweets」テーブルは「1対N」の関係になります。
ER図では「1対N」の関係は次のように表します。

ここで「FK」という新しい表記がでてきましたが、FKとは「外部キー」と呼ぶもので、今回の場合「ID」は「Tweets」テーブル以外(つまり外部の)「Users」テーブルのキーであることを表しています。

さて、それでは投稿に「いいね」がつけられるようしてみましょう。「いいね」は画面では「いいねの数」のように数字で表示されていますが、実際は「だれが」いいねしたかが保存されていて、ある投稿に何人「いいね」したかを「いいねの数」として表示します。
そのため、「いいね」を保存するテーブルに必要なのは「どの投稿」「だれが」「いつ」という3つの要素になります。

それでは、「Users」テーブル「Tweets」テーブル「Favs」テーブルの3つの関係を表してみましょう。
1つの投稿に1人の人がつけられる「いいね」は1つだけなので、「1対1」の関係が3つのテーブルの間で成り立たないといけないので、ER図のRelationは次のようになります。

これで、使う人が好きな投稿に対して「いいね」を付けたり消したりすることができるようになりました。

それでは、テーブル編はひとまずここまでにして、次回はER図をみながらThunkableアプリのブロックを書いていくことにしましょう。