2012-02-15 56 views
1

私はテーブルUsersUserID, FirstName, LastName...)とテーブルMessagesを持っています。表Messagesは、ユーザー間で送信されるメッセージを格納します。DBでこの解決策を解決する方法

だから、私は次のように、このテーブルを作成することができます。

Messages (SenderID, ReceiverID...)Usersに2 FKを作成しますが、このアプローチは間違っているとカスケードはFKのために/更新を削除させることはできませんようです。

複数のメッセージは許可されません。 また、両方の関係に「Set Null」を設定することはできません。どうして?それは非常に良いでしょう。

この場合、正しい構造はどれですか?

+2

カスケード削除!私の時計ではない...! –

+0

どうしてそんなこと言う? – John

+2

私は、アプリケーションに明示的な削除を許可することを好みます。関連レコードのファンが消えていない ' –

答えて

1

ユーザーの観点から問題を調べる必要があります。

送信者が送信トレイからメッセージを削除したときに受信者がメッセージを削除したがっていると思われますか?

いいえ。言い換えれば、各ユーザーのメッセージのコピーを1つ作成します。

複数のメッセージを

非常識要求を許可されていません。それは2つの異なるメッセージです。

関連する問題