Software Design 202502
実践データベースリファクタリング / 時間枠
複雑な時間枠の検索には特効薬はないが、Postgres の機能を活用は一考に値する。
配列型を使うと、複数の値を一つのカラムに格納できる。 JOIN を減らせる、GIN インデックスを活用できる、などのメリットがある。 正規化は失われる。整合性はアプリケーション側で担保する必要がある。
複数範囲型を使うと、ループを回すことなく、一度のクエリで複数の時間枠を検索できる。 GiST インデックスが活用でき、排他制御も使える。