2012-05-07 9 views
0

私はテーブルに6つの日付 - 時間型の列を持っています。私のアプリケーションでは、各列には、ビットデータ型の検証用の追加の列1と、ユーザーが修正する必要がある場合は別の修正日時が必要であるという要件があります。だから私の質問は、そこに私が持っている各列の2列を追加するより良いことは何ですか?また、私はテーブルスペースを節約するために使用できるスパース列について知っていますが、まだ私ができることがあればいいですか?スパース列または通常列?

'ビット' ロジック

はSO 3列

  1. 元の日時、
  2. 修飾日時と
  3. 検証ビットが存在します。

検証ビットは、デフォルトではfalseに設定されています。ユーザーが日時を変更したい場合、変更された日時列は新しい値で更新されます。ただし、元の日付/時刻の列は変更されません。ユーザは、入力された値が有効であるかどうかを判断する必要があります。検証ビットがこの機能を決定します。

+0

バリデーションビットの背後にあるロジックを説明しておけば助かります... –

+0

@jsobo:元のdatetimeが3、元のdatetimeが3、検証日時が3、検証ビットが3です。検証ビットは、デフォルトではfalseに設定されています。ユーザーが日時を変更したい場合、変更された日時列は新しい値で更新されますが、元の日時列は変更されません。ユーザは、入力された値が有効であるかどうかを判断する必要があります。検証ビットがこの機能を決定します。お役に立てれば。 – Ankur

+0

ユーザーはどのような条件で日付を入力し、それが有効ではないと判断しますか?私はスパース列を取得し、それは良い使用のように思えます。私はこの検証ビットを取得しません。 – Paparazzi

答えて

0

変更した日付を入力するまで、[有効]チェックボックスは無効になります。これらの2つの列のスパースが機能します。

+0

答えの@Blamに感謝しますが、私はここで適切に質問を説明することができないと思います。私は疎な列は、私は1つのメイン列と2つの他の列がある必要がありますが、そこにある必要がある唯一のオプションだと尋ねていたが必ずしも毎回移入されませんか? – Ankur

+0

FKの関係を持つ別のテーブルを持つことができます。テーブルでは、FKもPKになるので、プライマリテーブルの各行には0または1行しかありません。 PKクラスタ化インデックスへの結合は非常に高速です。個人的に私はそれを個人的な好みとしてスパース列以上に使用し、2005年以前はスパースは利用できませんでした。 – Paparazzi

関連する問題