1

私は2つのテーブルを持っています:

EMAIL_QUEUE
  ID identity,
  MIME_TYPE_ID int foreign key MIME_TYPE(id)
  etc...

MIME_TYPE
  ID identity,
  MIME_TYPE varchar(300),
  etc...

MIME_TYPE は現在、一意であると宣言されていません。特定の MIME タイプ (text/plain および text/html) のみを受け入れるように、EMAIL_QUEUE テーブルに制約が必要です。これを行うためのベストプラクティスは何ですか?

  1. カスタム関数とチェック制約を使用する
  2. MIME_TYPE 列を MIME_TYPE テーブルの主キーにし、可能な値に制約を設定します
  3. ?
4

2 に答える 2

0

チェック制約を追加します。たとえば、必要な 2 つの MIME タイプの ID が 3 と 4 の場合:

ALTER TABLE EMAIL_QUEUE WITH CHECK
  ADD CONSTRAINT MIME_TYPE_CHECK CHECK (MIME_TYPE_ID IN (3,4))

ID の値は変更されることが想定されていないため、受け入れ可能な値をハードコーディングしてもかまいません。

于 2013-08-28T15:34:38.983 に答える