KonomiTV のデータベース設計を、フィールドの解説と一緒に記述する。

データベースには SQLite を選択。というより、インストール型ソフトウェアにおいて、PostgreSQL や MySQL といったサーバー型のデータベースは事実上使えない。

Linux であればまだできるかもしれないけど(それでも環境は汚れる)、できるだけ環境を汚さずに Windows で動かすことを考慮すると…。

Docker 前提ならそういう問題も起こらないが、一般的な PC ユーザーが Windows PC に Docker をインストールしている訳がないので…。

型に関しては、SQLite はどっちみち 実際の型が 5 つしかない ため、Char は使わず(使えず)TEXT に統一する。

各項目はモデルのクラス名で、データベース上のテーブル名はその下に記述する。

Channel

<aside> 🗒️ データベース名: channels

</aside>

地デジ・BS・CS・CATV・SKY・StarDigio の全てのチャンネルが登録されるテーブル。

このテーブルはサーバーの起動時に一旦全て削除され、Mirakurun または EDCB から取得したチャンネル情報によって更新される。 差分管理にするほどデータ量が多くないので、それなら全消しして作り直したほうが実装が楽だった。

ID に関しては、Mirakurun や EPGStation とは異なり、あえて数値ではなく文字列として格納している。 その方が視覚的にわかりやすいし、開発リソースが限られる中でメンテナンスしやすいだろうという判断から。

ドキュメント

以下は個別ページを参照のこと。

チャンネルの ID について

チャンネルタイプについて

サブチャンネルの識別ロジックについて

定義

Program

<aside> 🗒️ データベース名: programs

</aside>