学生はとっくに冬休み、社会人でも人によっては23日の祝日から冬休みなのではないでしょうか。
月曜日は普段より朝の電車に乗っている人が目に見えて減りました。
火曜日は通勤電車で座れました。
水曜日の今日も通勤電車で座れるといいです。
木曜日からは私も冬休みの仲間入り。
ここ数週間は師走と呼ばれる通り忙しく働いていましたが仕事の方はさっぱり収まりませんでした。
来年の頭も忙しいかもしれませんが、どうにもならないのではなく、収まらないなりの対応ができそうなので良かったと言える状況にはなったので一安心です。
せっかくの仕事納めなので今年の仕事で一番失敗したと思った話をしましょうか。
一時的にデータを置いておく用のデータベースの設計で2500カラムあるテーブルを設計したことです。
システムエンジニア、という感じの話題で分からない方にはすみません。
少しデータベースをかじったことがある人には2500カラムのテーブルと言った時点で処理速度が遅そうだの、正規化を全く考えてないだの、いくらでも突っ込みが来ることは容易に想像がつくのですが、一旦全てのデータを退避させるスペースが欲しかっただけで設計したデータベースそのものを完成品とする訳ではなかったので性能面はどうでも良かったのです。
そしていざテーブルを作ろうという時にエラーが発生。
Oracleのデータベースでは1000を超えるカラムを持つテーブルを作れなかったのです。
縦は数百万でも数千万でもレコードを持てるのに横は1000が上限だなんてデータベースのテーブルはなんて縦長なのだと思いました。
周りの人もそもそも1000カラムを超えるテーブルを作ろうとしたことがない人ばかりで笑いの種になりましたが、設計の修正とテーブルの分割が面倒でした。
事前にカラム数の上限を調べておけば問題は起きなかったのですが、普通にデータベースを使う分にはどんなカラム数のテーブルでも許容してくれるので、カラム数の上限を確認しようと思わなかったのです。
データベースを触る機会があるかもしれない方は1000カラムを超える設計をしないように注意してください。
話がわからなかった方はExcelを例にとってみれば少しわかりやすくなるかもしれません。
一昔前のExcelなら縦65536行、横256列のデータが入ります。
今時のExcelなら縦1048576行、横16384列のデータが入ります。
縦に数百万行(その気になれば容量の許す限り数千万でも億越えでも)持てるデータベースの横幅がたったの1000列だなんて!!
という感じです。
失敗から学んでいきましょう。