コンテンツにスキップ
Documents for MorningStatusApp
Esc
↑↓移動↵開く⌘Jプレビュー
このページの内容

ER 図

最終更新: 2026-09-29

概要

MorningStatusApp のデータモデル全体を示す ER 図。 フェーズ・バージョンごとに追加されるエンティティを管理する。


エンティティ一覧

エンティティ 対応ファイル 追加バージョン 対応 Issue
メンバー(Member) Vercel Blob(members.json) / data/work/members.json(作業用一時コピー) v0.1.0〜 -
リリース(Release) Neon(Vercel Postgres)release テーブル v0.2.0〜 #244
メンバー・リリース紐付け(MemberReleaseLink) Neon release + Blob members.json から実行時に算出(永続ファイルなし) v0.2.0〜 #244
収録曲(Track) Neon(Vercel Postgres)track テーブル v0.5.0 #338・#339
外部リンク(ExternalLink) PlaylistEntry.links[] 内の値型(独立ファイルなし) v0.5.0 #347
プレイリスト(Playlist) Neon(Vercel Postgres)※ 移行前までVercel Blob(data/inputs/playlists.json 凍結入力) v0.6.0【対応する実装: 実装時に追記(MorningStatusApp#1680)】 #328・#330, MorningStatusApp#1677, morning-status-blume#166
プレイリスト楽曲(PlaylistEntry) Neon(Vercel Postgres)※ 移行前までdata/inputs/playlists.json 内 entries[] v0.6.0【対応する実装: 実装時に追記(MorningStatusApp#1680)】 #328・#330, MorningStatusApp#1677, morning-status-blume#166
対比グループ(ComparisonGroup) Neon(Vercel Postgres)※ v1.1.0〜再構築前までVercel Blob(comparison-index.json) v1.1.0【対応する実装: 実装時に追記(MorningStatusApp#1633)】 #474, MorningStatusApp#1633, morning-status-blume#148
対比グループ×トラック紐付け(ComparisonGroupTrack) Neon(Vercel Postgres)※ v1.1.0〜再構築前までVercel Blob(comparison-index.json 内 pairs[].tracks[]) v1.1.0【対応する実装: 実装時に追記(MorningStatusApp#1633)】 #474, MorningStatusApp#1633, morning-status-blume#148
ユニット(Unit) Vercel Blob(UNITS_BLOB_URL) v1.5.0 #532
会場(Venue) Neon(Vercel Postgres) v3.0.0 #528
ツアー(Tour) Neon(Vercel Postgres) v3.0.0 #528
公演(Live) Neon(Vercel Postgres) v3.0.0 #528
メンバー・公演紐付け(MemberLive) Neon(Vercel Postgres) v3.0.0 #528
都道府県コード変換テーブル(PrefectureCode) Neon(Vercel Postgres) v3.0.0 #528
出身地照合用メンバー(Member、DB) Neon(Vercel Postgres)※出身地照合用 v3.0.0 #528
セットリスト(Setlist) Neon(Vercel Postgres)※将来拡張 — #528
フェス(Festival) Neon(Vercel Postgres) v3.9.0 #776
リリース(DB、Release) Neon(Vercel Postgres)※ Blob releases.json の移行先 v4.1.0 #853
収録曲(DB、Track) Neon(Vercel Postgres)※ releases.json 内 tracks[] の移行先 v4.1.0 #853
収録曲外部リンク(DB、TrackLink) Neon(Vercel Postgres)※ Track.links[] の正規化テーブル v4.1.0 #853
Instagram投稿(InstagramPost) Vercel Blob(instagram/{memberId}/posts.json) v3.5.0 #715
Instagram同期状態(InstagramSyncStatus) Vercel Blob(instagram/sync-status.json) v3.5.0 #715
当日新着投稿(DailyNewPost) Vercel Blob(instagram/daily-new-posts.json) v3.5.0 #715
TikTok投稿(TikTokPost) Neon(Vercel Postgres)※ v4.2.3までVercel Blob v4.2.0 #805・#888
TikTok同期状態(TikTokSyncStatus) Neon(Vercel Postgres)※ v4.2.3までVercel Blob v4.2.0 #805・#888
ラジオ番組(RadioShow) Neon(Vercel Postgres) v4.3.0 #806
ラジオ放送回(RadioEpisode) Neon(Vercel Postgres) v4.3.0 #806
ラジオ出演メンバー(RadioMember) Neon(Vercel Postgres) v4.3.0 #806
ラジオオンエア楽曲(RadioOnairSong) Neon(Vercel Postgres) v4.3.0 #806
統合イベント(Event) Neon(Vercel Postgres)※ Releases/Members/Lives/Radio/手動登録イベントの統合派生データ v5.0.0 #925〜#928
イベント楽曲(EventSong) Neon(Vercel Postgres)※将来拡張 — MorningStatusApp #1528, morning-status-blume#67
イベント楽曲・トラック紐付け(EventSongTrack) Neon(Vercel Postgres)※将来拡張 — MorningStatusApp #1528, morning-status-blume#67
YouTube投稿(YoutubePost) Neon(Vercel Postgres) v6.5.0 #1097
メンバー関係性エッジ(MemberRelationship) Neon(Vercel Postgres) v8.0.0 #1209
メンバー関係性マップ座標(MemberMapLayout) Neon(Vercel Postgres) v8.2.0 #1210
子供の生年データ(MemberChild) Neon(Vercel Postgres) v10.6.0 MorningStatusApp#1571, MorningStatusApp#1632, morning-status-blume#128

ER 図(コア音楽データ)

メンバー・リリース・収録曲・プレイリスト・ユニット・曲対比の関連。Member は Vercel Blob(members.json)、Release / Track / TrackLink は Neon(Vercel Postgres)。Blob と Neon をまたぐ関連(Member-MemberReleaseLink-Release 等)は ID の値一致で対応し、DB レベルの FK 制約はない。


ER 図(ライブ・フェス機能)

Venue / Tour / Live / MemberLive / Setlist / Festival は Neon(Vercel Postgres)。MemberLive.memberId は Blob members.json の id と値一致で対応し、DB レベルの FK 制約はない。

PrefectureCode・Member(出身地照合用)は「ご当地ライブ」判定でアプリケーション側から参照される(Venue.prefecture ↔ PrefectureCode.prefectureCode、MemberLive.memberId ↔ 本テーブルの memberId)。Prisma の @relation は定義されておらず、DB レベルの FK 制約はない。

"Tour" はダブルクォートで囲んでいる(構文上は不要)。クォートなしの Tour はエディタによって Mermaid ER 図のレンダリングに失敗することが確認されているため、クォートを外さないこと。


ER 図(SNS投稿収集:Instagram・TikTok・YouTube)

InstagramPost / InstagramSyncStatus / DailyNewPost は Vercel Blob、TikTokPost / TikTokSyncStatus / YoutubePost は Neon(Vercel Postgres)。いずれもメンバーとの対応は memberId の値一致によるもので、FK 制約はない。


ER 図(ラジオオンエア収集)

RadioShow / RadioEpisode / RadioMember / RadioOnairSong は全て Neon(Vercel Postgres)。RadioMember.memberId は Blob members.json の id と値一致で対応し、DB レベルの FK 制約はない。


ER 図(タイムライン統合イベント)

Event は Neon(Vercel Postgres)の統合派生データ。source/sourceId は Release/Live/RadioEpisode/Festival/Member(source='manual' の場合は元データなし)への多態的な参照であり、Prisma の @relation は定義されていない。


ER 図(メンバー関係性マップ)

MemberRelationship / MemberMapLayout は Neon(Vercel Postgres)。fromMemberId / toMemberId / memberId は Blob members.json の id と値一致で対応し、DB レベルの FK 制約はない。


ER 図(世代マトリックス)

MemberChild は Neon(Vercel Postgres)。memberId は Blob members.json の id と値一致で対応し、DB レベルの FK 制約はない。詳細 → 世代マトリックス データ設計書 §2-1


更新履歴

版 バージョン 更新日 変更内容 関連 Issue
2.8 - 2026-09-29 【対応する実装: 実装時に追記(MorningStatusApp#1680)】プレイリストデータのBlob→Neon移行に伴い、エンティティ一覧のPlaylist/PlaylistEntry格納場所をNeonに更新。コア音楽データER図にPlaylistEntry.id(PK)・entryOrderを追加し、Playlist.idをplaylistIdに改称。Release↔PlaylistEntryの関係を多対多(}o--o{)から一対多(`
2.7 - 2026-09-22 対比機能の再構築(Neon DB化)に伴い、コア音楽データER図のComparisonPair/ComparisonTrackをComparisonGroup/ComparisonGroupTrackに置き換え。エンティティ一覧の対応ファイル・追加バージョン列も更新 MorningStatusApp#1633, morning-status-blume#148
2.6 - 2026-09-22 【対応する実装: 実装時に追記(MorningStatusApp#1545)】ライブ・フェス機能のER図のフェス(Festival)に、time(開催時刻)・performanceTime(出演時刻)を追加(いずれも optional) MorningStatusApp#1545
2.5 - 2026-09-21 エンティティ一覧の子供の生年データ(MemberChild)の追加バージョンを v10.6.0 とし、「設計のみ先行」の注記を削除(実装済のため) MorningStatusApp#1632, morning-status-blume#141
2.4 - 2026-09-20 世代マトリックス機能のエンティティ(MemberChild)をエンティティ一覧・新規ER図セクションに追加(設計のみ先行、実装はMorningStatusApp#1632) MorningStatusApp#1571, morning-status-blume#128
2.3 - 2026-08-30 手動イベント登録の会場・楽曲属性追加に伴い、Event に venueId(FK → Venue)を追加。エンティティ一覧・ER図(タイムライン統合イベント)に EventSong・EventSongTrack・Venue・Track との関連を追加 MorningStatusApp #1528, morning-status-blume#67
2.2 - 2026-07-20 Event エンティティに time フィールドを追加 #1381
2.1 - 2026-07-19 v0.5.0/v0.6.0の古いMermaid ER図スナップショットを破棄し、現行実装の全エンティティを反映した機能ドメイン別のER図(コア音楽データ・ライブ/フェス・SNS投稿収集・ラジオオンエア収集・タイムライン統合イベント・メンバー関係性マップ)に置き換え #1382
2.0 - 2026-07-19 v3.5.0〜v8.2.0で追加された未反映エンティティ(Instagram・TikTok・ラジオ・年表・YouTube投稿・メンバー関係性マップ)をエンティティ一覧に追加。既存行の物理テーブル名(venues等)をPrismaモデル名に是正 #1374
1.9 v4.1.0 2026-05-10 アプリのリリースデータ読み取りを Blob releases.json → Neon getReleases() に移行 #855
1.8 v4.1.0 2026-05-10 releases・tracks・track_links Neon テーブル追加(Blob releases.json の移行先スキーマ) #853
1.7 v3.9.0 2026-05-08 festivals テーブル追加 #776
1.6 v3.0.0 2026-04-11 ライブ機能 Neon テーブル(venues・tours・lives・member_lives・prefecture_codes・members・setlists)追加 #528
1.5 v1.5.0 2026-03-30 Unit エンティティ追加 #532
1.4 v0.7.6 2026-03-23 Release.youtubeUrl を廃止し Release.links[](ExternalLink[])に統合。PlaylistEntry.links を廃止しリンクは Track.links[] に一元化 #424・#425
1.3 v0.6.0 2026-03-21 Playlist.description フィールド追加、ExternalLink.type にストリーミングプラットフォームを追加 #328・#329
1.2 v0.6.0 2026-03-19 Playlist・PlaylistEntry エンティティ追加、PlaylistEntry.links に ExternalLink[] 追加 #328・#330・#349・#351
1.1 v0.5.0 2026-03-19 Track エンティティ追加、Release に tracks[]・youtubeUrl(現在は廃止済)追加、ExternalLink 型追加 #338・#339・#347・#348・#350
1.0 v0.2.0 — Release・MemberReleaseLink エンティティ追加、Member エンティティ追加 #244

このページは役に立ちましたか?