試験に合格したのはいつですか?

やや脚色を加えながら、今日、仕事でつまづいた問題を紹介したい。今日のミッションは特定の団体に所属している受験者の試験合格日順の一覧を作るというもの。もちろん、試験結果はデータベース化されているので、Accessでクエリを走らせれば一発で済む、簡単な課題だ。と思ったのだが、落とし穴にはまった。
データベースを見てみたところ、「合格日」というカラムは見当たらない。代わりに「試験合格発表日」「合格認定日」「合格登録日」といったカラムがいくつか並んでいた。もちろん、ばらばらの日付が入っている。
これではどんなスーパーハッカーでも、絶対に「合格日」順にソートすることはできない。「合格日」という言葉の定義から議論をしなければいけないのだから。で、それを誰と?
仕方が無いので、とにかく前任者に話を聞いて、どういうクエリーを組んでいたのか教えてもらった。そして、深い考察は抜きにして「合格認定日」で機械的にソートしていたというので、自分もそれを引き継ぐことにした。自分の後任者に引き継ぐときも、「難しいことは考えるな。データの連続性を確保するために、このカラムでソートするんだ」と教えることになるのだろう。このようにして、会社の不思議業務が生まれていくのだ。

データベースのカラムのネーミングというのは、意外と重要な業務なのかもしれない。設計が下手だけれどもカラムのネーミングが的を射ているテーブルと、設計が上手だけれどカラムのネーミングが出鱈目なテーブルでは、やはり、ネーミングの良いテーブルのほうがメンテナンスしやすいだろう。
大変になるかもしれないけれど、テーブルの正規化は後からでも、別の人でもできる。しかし、ネーミングのひどいテーブルを作ってしまうと、作った本人以外、メンテナンスができなくなってしまう恐れが大きい。

ブログ気持玉

クリックして気持ちを伝えよう!

ログインしてクリックすれば、自分のブログへのリンクが付きます。

→ログインへ

なるほど(納得、参考になった、ヘー)
驚いた
面白い
ナイス
ガッツ(がんばれ!)
かわいい

気持玉数 : 0

この記事へのコメント

この記事へのトラックバック