カレンダー

2016/02
 
      
       

広告

Twitter

記事検索

ランダムボタン

よく分かっていない

by 唐草 [2016/02/12]



 今請け負っている開発では、データベースを利用してデータを保存している。データベースには、多くのテーブル(表)が存在している。
 そのテーブルの中に、1つだけ主キー(記録を特定するためのIDのようなもの)が存在しないものがあった。妙なテーブルだという認識はあったのだが、主キーとして使いたい値は、実行環境の方が勝手に割り振ってくれるので独自にIDを降る必要がない。だから独自に主キーを指定しなくても、レコードの特定はできる。そう考えていた。
 だが、そんな妙な作りはシステムの方が許してくれなかった。
 「主キーがねーよ、バーカ!」とシステムに怒られた。
 やっぱりダメか…。
 じゃあ、システムの割り振る番号を保存しているフィールドを便宜的に主キーにすればいいか。深い考え無しに仕様を変更した。そうしたら、任意の番号が保存できなくなって、勝手に連番を保存しだした。
 えー、何でだよ。
 仕方がないので、システムを満足させるためだけに使いもしない主キー用のフィールドを追加した。これで、見かけはうまく動くようになったが、どうも釈然としない。
 なぜ主キーは連番じゃないとダメなんだ。重複しなければ任意の番号で良いじゃないか。
 どうにも気になったので、改めてデータベース定義の構文を確認してみた。すると、ぼくがコピペした定義命令に「自動連番にして」という命令が入っていた。
 はぁ、分からないことを分からぬままコピペしていたので、自らドツボにはまっていたのか。システムに怒られてからやったことは、すべて無駄だった。ちゃんと理解してから書かないと、ダメだな…。