仕事でOracle使ってます。
SQL Serverに馴染んでいるので、機能的な違いだけでなく、取り巻く環境の違いにもよく戸惑います。
列挙型ってありますよね。
この言い回しが一般的なものなのか分かりませんけれど、例えば住所のデータベースで都道府県を記録する場合、都道府県カラムに文字列でそのまま放り込むんじゃなくて、コードを記録するってやり方。
コードと実際の都道府県の文字列の対応表となるものは、アプリケーション側で保持したり。
これ、わたしはSQL Serverではtiny intとかsmall intとか使ってました。
誰かにそうするものって習ったのかどこかで見かけて真似したのかもう覚えてないんですけれど、それが普通になってました。
趣味で触ったmySQLにもこれらの数値型が確かあったので、同じようにやっぱりやってました。
Oracleの数値型だとnumberになっちゃうんだけど、そのままの流れでnumber(1)とかnumber(2)で設計しようとしました。
すると、Oracleでの経験も多いプロジェクトメンバーに 「Oracleだと普通char型使いますよ?」と言われ。
「え?そうなの?」 となんとなく納得いかない気持ちながら、そういう伝統は先人の経験から来るものだろうと素直にchar型にしました。
コードは数値型、ってのがあまりにも当たり前になってて、そうする理由とか考えたことなかったので、char型に対するメリットを訴えられなかったのもあるんですけれど。
これってどうなんだろう?と今でも思います。
Oracleのノウハウを紹介しているサイトとかでも、Oracleでのコード=char型ってな説明があったので、実際そういう伝統はあるようなのですけれど。
みなさんはコードのカラム、型は何を選んでいますか?
その理由はなぜですか?