0

属性を持つ sqlite3 データベースに多数のテーブルがありcost INTます。

現在、テーブルの 1 つで、コストの有効な値が 3 つNULL、数値、または「X」である状況に陥っています。

数字と文字の両方を属性に入力できるようにする方法はありますか。

私はコストをaにすることを考えていましたCHAR(1)

CONSTRAINT ck_cost CHECK (ISNUMERIC(cost) OR cost = 'X')

ただし、コスト値をリテラル整数に設定することはできず、引用符で囲む必要があります ('1'の代わりに1)。これは、他のテーブルと矛盾します。

4

1 に答える 1

1

要求に応じて答えるために私のコメントを宣伝しました:)

別のフィールド(「属性」)を追加するだけで、コストがXであることを示します。数値をテキストとして保存する方が、日付をテキストとして保存するよりも少しだけ優れています。どちらのアプローチも遅かれ早かれ失敗します。

于 2012-11-02T14:00:38.513 に答える