現在のプロジェクトでは、非常に単純な 1 対 1 のメッセージング サービスを作成しています。私は2つのテーブルを持っていusers
ますmessages
. テーブルの現在の構造messages
は次のようになります。
id | from | to | message | sent | received
int | int | int | string | datetime | datetime
from
およびto
フィールドは両方とも、users
主キー (id)に対する外部キーです。それはうまくいくようですが、両方にカスケード削除を使用させることはできません。次のエラーが表示されます。
Introducing FOREIGN KEY constraint 'FK_messages_users_to' on table
'messages' may cause cycles or multiple cascade paths. Specify ON
DELETE NO ACTION or ON UPDATE NO ACTION, or modify other FOREIGN KEY constraints.
Could not create constraint. See previous errors.
これはできますか?うまくいかない理由がわかりません。ユーザーが削除された場合、会話全体を削除したいので、from
またはto
フィールドにユーザー ID を持つすべての行を削除します。