アプリ版:「スタンプのみでお礼する」機能のリリースについて

データ型について教えてください。
あまり気にする必要がないかもしれませんが、テーブルにフラグ目的でフィールドを作る場合、
データ型は何するのが一般的なのでしょうか?(CHAR OR NUMBER?)
ACCESSで言えばBOOLEANになると思うのですが、ORACLEやポスグレはないですよね?

私は、CHAR(1)にしています。
理由は、プログラムでSQLを書くときに''で囲むようにするためです。
その他のフィールドもだいたいテキストか日付ですので、''を囲むフィールドばかりです。
できるだけ''囲むフィールドに統一して、SQLの記述ミスを少なくしようというのが狙いです。

この考え方は間違っていますか?

A 回答 (2件)

間違っていないと思います。



でも、私は、NUMBER 型を使います。
理由は、プログラムを書くときに、明示的にフラグだと解るようにしたいからです。

フラグとしての使い方を考えると、
プログラム上では、単体で動作する事が多くなってきます。
例えば、データを論理削除する場合に、削除フラグとして利用します。
その時には、SELECT の時には、WHERE の一部として入力されて利用されます。
UPDATE では、他のデータと同時にってよりも、削除フラグだけを設定する事が考えられます。
その為に、他のデータと記述上で見分けが付くように、しておきたい為です。
また、入れるデータも プログラム言語上で利用する True や False を使って明示的に解るようにしたい為です。

この辺りは、何が合っていて、何が間違っているって言うのは少ないと思います。
ルールをしっかりして、混合する様なルールになっていなければ、正解だと思います。
    • good
    • 0

PostgreSQLにもboolean型がありますよ。



でも、わたしもchar型を使うことが多いですね。
複数のRDBMSをプロジェクトによって使い分けるので、どのRDBMSでも共通で使える型を使用します。
理由は、その方が間違えが少ないですし、移植する時に修正が少なくなるからです。

この回答への補足

postgresにあるんですか。

運用上統一すべきなのですが、、
弊社にはoracleとpostgresがあり、両者で同じテーブルがあるため、データの移植、移行をよく行っています。そう考えると、postgresでboolean使うべきではないですね。

補足日時:2010/10/06 12:11
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

関連するカテゴリからQ&Aを探す