ソフトウェア開発者の日常

こだわりなく書きたいことを書いていきます。

予想外のデータの定義の仕方

僕なら絶対そういう設計はしないという設計をされていました。
f:id:AJYA:20140613052441j:plain
photo credit: rami.sedhom via photopin cc

僕が開発に全くかかわっていないシステムのデータベースから、データの取得を頼まれました。
対象となるデータは、2テーブルの情報を結合すれば簡単に取得できそうです。

予想外のデータ

データの元となる1テーブルを探し当てて、結合に必要そうなもう1テーブルも探し当てました。
もう1テーブルの方のデータを確認すると、
id hiduke
1 末日
2 1日
3 2日
というように、idに対して、1を加算した値が日付として31日まで登録されていました。

idと日付を一致させる

僕だったら、
id hiduke
99 末日
1 1日
2 2日
として、idと日付は一致させて末日だけ特異な値にして、結合しなくてもデータの元となるテーブルを見たら、推測できるようにします。

末日を先頭にしたい

末日が先頭になるようにソートのことを考えたのなら、ソート用に1カラム増やすか、
id hiduke
0 末日
1 1日
2 2日
として、先頭になるように考えます。