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

ER 図

最終更新: 2026-07-20

概要

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 data/inputs/playlists.json(Vercel Blob 凍結入力) v0.6.0 #328・#330
プレイリスト楽曲(PlaylistEntry data/inputs/playlists.jsonentries[] v0.6.0 #328・#330
対比ペア(ComparisonPair comparison-index.jsonpairs[] v1.1.0 #474
対比曲(ComparisonTrack comparison-index.jsonpairs[].tracks[] v1.1.0 #474
ユニット(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
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

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.jsonid と値一致で対応し、DB レベルの FK 制約はない。

PrefectureCodeMember(出身地照合用)は「ご当地ライブ」判定でアプリケーション側から参照される(Venue.prefecturePrefectureCode.prefectureCodeMemberLive.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.jsonid と値一致で対応し、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.jsonid と値一致で対応し、DB レベルの FK 制約はない。


更新履歴

バージョン 更新日 変更内容 関連 Issue
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 releasestrackstrack_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 テーブル(venuestourslivesmember_livesprefecture_codesmemberssetlists)追加 #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 PlaylistPlaylistEntry エンティティ追加、PlaylistEntry.linksExternalLink[] 追加 #328・#330・#349・#351
1.1 v0.5.0 2026-03-19 Track エンティティ追加、Releasetracks[]youtubeUrl(現在は廃止済)追加、ExternalLink 型追加 #338・#339・#347・#348・#350
1.0 v0.2.0 ReleaseMemberReleaseLink エンティティ追加、Member エンティティ追加 #244

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