表示順管理テーブル
1. 目的
出力する状況(ページ)毎にソート順を定義したい
- あるページでは新着順、あるページではカスタマイズされたソート順(人気順など)というように、出力先に応じて柔軟にソート順を指定したい
2. 課題
ソート順を保存するカラムは作りたくない
- ソート順を保存するカラムとは
- 出力先毎にソート順保存カラムを追加していくと「ソート順を管理するカラム」が同じテーブルの中に複数存在するので、正規化が崩れる
- 運用やデータのメンテナンスも困難
- 基本的に推奨できない
3. 解決策
ソート順を管理するテーブルを作る
- エンティティと出力先、出力先に応じたソート順を管理する専用テーブルを追加する
4. メリット
各テーブルにソート順カラムを持つ必要が無くなる
- 正規化が守られる
5. デメリット
テーブル構造が複雑化する
珍しい設計なので所見で混乱を生む可能性がある
- 設計意図を記したドキュメントが必要