KonomiTV のデータベース設計を、フィールドの解説と一緒に記述する。
データベースには SQLite を選択。というより、インストール型ソフトウェアにおいて、PostgreSQL や MySQL といったサーバー型のデータベースは事実上使えない。
Linux であればまだできるかもしれないけど(それでも環境は汚れる)、できるだけ環境を汚さずに Windows で動かすことを考慮すると…。
Docker 前提ならそういう問題も起こらないが、一般的な PC ユーザーが Windows PC に Docker をインストールしている訳がないので…。
型に関しては、SQLite はどっちみち 実際の型が 5 つしかない ため、Char は使わず(使えず)TEXT に統一する。
各項目はモデルのクラス名で、データベース上のテーブル名はその下に記述する。
<aside> 🗒️ データベース名: channels
</aside>
地デジ・BS・CS・CATV・SKY・StarDigio の全てのチャンネルが登録されるテーブル。
このテーブルはサーバーの起動時に一旦全て削除され、Mirakurun または EDCB から取得したチャンネル情報によって更新される。 差分管理にするほどデータ量が多くないので、それなら全消しして作り直したほうが実装が楽だった。
ID に関しては、Mirakurun や EPGStation とは異なり、あえて数値ではなく文字列として格納している。 その方が視覚的にわかりやすいし、開発リソースが限られる中でメンテナンスしやすいだろうという判断から。
以下は個別ページを参照のこと。
<aside> 🗒️ データベース名: programs
</aside>