個人サイトのデータベースはNoSQLだけでもいい

自サイトはGCPで運営していて、データベースはFirestore(NoSQL)を使っています。以前はずっとデータベースはMySQLを使っていましたが、トライ&エラーを繰り返す弱小個人サイトはNoSQLで十分だと思うに至りました。

NoSQLはリレーショナルデータベースと比べると使えるクエリが限定的です。部分一致で絞り込めないのは辛いと感じることもあります。ただ開発していて思うのは、検索したいカラムは限られているし、外部キー制約とかなくてもたいして困らないということです。

もちろんユーザー登録や課金があるようなシステムなら、事前にスキーマをきちんと定義してリレーショナルデータベースできっちりやるべきです。トランザクション処理も重要になるでしょう。しかし管理者は自分だけの弱小個人サイトの開発・運営はリレーショナルデータベースはコストの高さのデメリットの方が大きいと思うようになりました。

FirestoreはINSERT/UPDATEごとに新たなカラム(フィールド)を追加できるので、マイグレーションも楽です。そのような自由にはバグもつきものですが、弱小個人サイトでそんなに複雑な構造にならないですからね・・・。それより厳密な型や外部キーの制約コストを気にせずトライアンドエラーを繰り返せる方がいい。

どうせ弱小個人サイトの試みの多くは失敗に終わって、ゴミと化すデータは多いのだから・・・どうしてもリレーショナルデータベースでないと困るデータセットが出てきたら、それだけMySQLに移せばいい。