1

データベースにコメントシステムがあります。stackoverflow->のように、各投稿にはコメントのリストがあります。ケウル。

匿名の人もコメントや登録ユーザーを追加できます。

私のテーブルでは、次のことを考えています。

  • ユーザーIDintNULLABLE
  • AnonymousNickname varchar(100)NULL可能
  • AnonymousEmail varchar(200)NULL可能

今ではどちらか一方しかできません。あなたは登録されているかどうかのどちらかです。

だから私はどちらか一方を言うある種の制約を強制する必要があります..もしそうなら、どのように?

注:データベースはMicrosoft SqlServer2008です。

乾杯!

4

2 に答える 2

2

単純な制約は次のようになります

(Userid is not null and AnonymousNickname is null and AnonymousEmail is null)
or (Userid is null and AnonymousNickname is not null and AnonymousEmail is not null)

これにより、どちらか一方のみが強制的に設定されます。これは、アプリケーションに基づいて合理的であるように思われます。データベースまたはアプリケーションでそれを適用するかどうかを決定するのはあなた次第です。アプリケーションの他の部分が依存する厳しい制約である場合は、おそらくデータベースでそれを強制し、コードでの検証を通じて検出します。

于 2008-12-14T05:04:33.380 に答える
0

制約は含めません。匿名名フィールドの名前をnameに変更する必要があります。登録ユーザーがコメントを残すときは、名前フィールドにユーザー名を入力します。これにより、コメントを一覧表示するときにユーザーテーブルを検索する手間が省けます。また、ユーザーがユーザーテーブルから削除された場合、そのコメントはユーザーよりも長持ちします。

于 2008-12-14T06:21:24.350 に答える