2006年03月20日

2行までしかInsert出来ないテーブルを定義する

データベースカテゴリ新設記念。
お題は「2行までしかInsert出来ないテーブルを定義する」です。

トリガーを使えば簡単ですが他の方法を考えます。
考えつくのは
・論理値データ型(Boolean型)フィールドをプライマリキーに設定すること
コレによって、主キーが True,Falseの2値までしかとれないテーブルが出来るので、
0,1,2行のデータが存在する可能性のあるテーブル定義となる。


同様に3行までしか存在出来ないテーブルは
・論理値データ型(Boolean型)フィールドを ユニークキーとして設定することである。
この場合、 True,Falseの他に DBNull値が保存できる。

こういったトリックを使わなくてもトリガーでロジックを組めばどんな制約でも構築できるのですが。

そして、RDBについての知見を与えてくれる良きサイトはこちら
リレーショナル・データベースの世界

SQLを速くするぞなどは必読。
パフォーマンスアップのSQLを会得しましょう。

3値論理 も一読しておくとよいと思います。
NULL許可フィールドがあるとやっかいですが、NOT NULLにしておくとテストデータ作成時になにがしかの値を設定しておく必要があり、NULL許可したままの状態で作成したりすることもあった。
「デフォルト値」を定義し、NOT NULL推奨。

ここだけの話ですが、上記サイトの雰囲気はどこかしら私の知人の一人によく似ている。確認をとるのが怖い。あり得ませんが、あり得ると怖い。
記事を読ませていただくとまた新たに心をリフレッシュして新鮮なSQLを書くことが出来そうな予感がする。
この記事へのトラックバックURL
http://blog.sakura.ne.jp/tb/486004
※言及リンクのないトラックバックは受信されません。

この記事へのトラックバック
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。

・おすすめ楽天ショップ1:trendyimpact楽天市場店
・おすすめサプリショップ:iHerb.com
・おすすめ楽天ショップ2:上海問屋
Powered by さくらのブログ