RSS Readerアプリのデータ構造は、シンプルながら拡張性を考慮した設計にしています。この回では、テーブル設計からカラム設定、初期値や表示制御のポイントまで、わかりやすく解説します。
機能と役割
- RSSfeedの管理
- RSSfeedを管理するためのtable
- Feedのurlからメタ情報を取得(title, description, site url, copyright, pubDate)
- Feedごとの最終記事収集日時をセット(以降の記事を対象とする)
- ユーザーごとのFeedの閲覧管理
- 記事の管理
- RSSfeedから記事を定期的に取得し記事を管理ためのtable
- 記事に関するユーザーごとの管理(お気に入り、既読)
テーブル構成と役割
1. RSS_URL テーブル
RSSフィードのURLのメタ情報と最終記事日時、閲覧ユーザーを管理します
RSS_URLシート

カラム名 | データ型 | 説明 | Setting |
---|---|---|---|
RSSId | Text (Key) | 一意のID(Key) | INITILAL VALUE:UNIQUEID() |
url | Url | RSSフィードURL | |
timeStamp | DateTime | 最終取得日時 | EDTABLE:FALSE |
category | Enum | フィードの分類 (例:IT、新聞) | |
title | Text (Label) | フィードの名称 (例:日経新聞 速報) | SHOW:NOT(CONTEXT("FormMode") = "add") EDTABLE:FALSE |
description | LongText | フィードの概要 | SHOW:NOT(CONTEXT("FormMode") = "add") EDTABLE:FALSE |
link | Url | フィード元のWebサイトリンク | |
copyright | Text | 著作権情報 (ある場合) | SHOW:NOT(CONTEXT("FormMode") = "add") EDTABLE:FALSE |
pubDate | DateTime | フィードの最終更新日時 (任意) | SHOW:NOT(CONTEXT("FormMode") = "add") EDTABLE:FALSE |
trigger | Text | 自動処理トリガー用 (一時処理に使用) | |
userList | EnumList | このフィードを購読中のユーザー (カンマ区切り) |
2. News テーブル
取得した記事情報を格納するテーブル
Newsシート

- ユーザー単位の状態管理
userFavorite
やuserCheck
はUSEREMAIL()
を使って記録され、ユーザーごとに個別のステータスを管理(お気に入り、既読)
カラム名 | データ型 | 説明 | Setting |
---|---|---|---|
NewsId | Text (Key) | 一意のID | INITILAL VALUE:UNIQUEID() |
RSSId | Ref (RSS_URL : RSSId) | 紐づくフィードID (リレーション) | |
title | Text (Label) | 記事タイトル | |
link | URL | 記事へのリンク | |
image | URL | サムネイル画像URL | |
description | LongText | 記事の本文または要約 | |
date | DateTime | 記事の公開日時 | INITILAL VALUE:NOW() |
userFavorite | EnumList | お気に入りに登録したユーザー (カンマ区切り) | |
userCheck | EnumList | 既読にしたユーザー (カンマ区切り) |
リレーションシップの構造
RSS_URL
<-News
RSS_URL.RSSId
をキーとして、News.RSSId
が Ref 型で紐づきます。- この構造により、以下が可能になります:
- 各フィードに紐づく記事一覧の表示(
Related News
) - 記事から逆に、どのフィード由来かを参照
- 各フィードに紐づく記事一覧の表示(

特徴と補足
- ユーザー単位の状態管理
userFavorite
やuserCheck
はUSEREMAIL()
を使って記録され、マルチユーザーでも個別のステータスが追跡可能です。 - スワイプUIに最適化
スワイプでuserFavorite
やuserCheck
を更新するアクションと連携し、スマート操作を実現。 - 今後の拡張例
-trigger
カラムを活かしたカテゴリ別自動更新制御
-userList
によるフィード購読機能
-description
のAI要約フィールド追加
1. RSS_URL テーブル
このテーブルでは、ユーザーが登録したRSSフィードのURLやカテゴリを管理します。
カラム名 | データ型 | 説明 |
---|---|---|
URL | Text | 登録するRSSフィードのURL |
カテゴリ | Text | ニュース分類(例:技術、経済) |
最終取得日時 | DateTime | 最後に記事を取得した日時 |
2. News テーブル
取得したRSS記事の詳細情報を格納するメインテーブルです。
カラム名 | データ型 | 説明 |
---|---|---|
タイトル | Text | 記事のタイトル |
リンク | URL | 記事のリンク先 |
画像 | Image or URL | サムネイル画像のURL |
説明 | LongText | 記事の概要 |
取得日時 | DateTime | 記事の公開日/取得日 |
既読 | Enum (Yes/No) | 既読状態(スワイプで更新) |
お気に入り | EnumList | お気に入り登録したユーザーのメールアドレス |
カラムの初期値・編集権限・表示設定
🔹 初期値(Initial Value)
既読
: 初期値は “No” に設定 → 初めて取得した記事は未読状態にお気に入り
: 初期値は空白 → 登録なしからスタート
🔹 編集可能条件(Editable_If)
既読
: TRUE → スワイプ操作で更新可能にするため常に編集可能お気に入り
: TRUE(条件でIN(USEREMAIL(), [お気に入り])
を使うことも)
🔹 表示制御(Show_If)
- 管理用カラムや自動処理の情報は
[USEREMAIL()] = "admin@example.com"
などで制御
スライスの活用
スライスとは、テーブルの中から特定の条件でデータを抽出するフィルタのようなものです。
作成した主なスライス
スライス名 | フィルター条件 | 用途 |
---|---|---|
未読記事 | [既読] = "No" | 未読だけを一覧で表示 |
お気に入り | IN(USEREMAIL(), [お気に入り]) | ユーザーのお気に入りだけ表示 |
カテゴリ別ニュース | [カテゴリ] = "技術" など | カテゴリ別に記事をフィルタ表示 |
スライスを活用することで、ビューの構成が柔軟になり、ユーザーごとのパーソナライズが可能になります。
補足:キーの設定
News
テーブルでは、記事のタイトル+リンクを結合した値を仮キーとして使うことで、重複防止にも役立てています。 例:[タイトル] & "_" & [リンク]
次回は、こうした構造をもとに、どのようにビューを構築しているか(一覧、詳細、見せ方の工夫)を解説します。
- 初期値:
Initial Value
にfalse
や""
を設定 - 表示制御:
Show_If
やEditable_If
で表示権限を制限 - スライス:未読・お気に入りなどの条件で絞込