私は2つのテーブルを持っています:メッセージと製品。 メッセージテーブルには、ProductテーブルのProductIdと同じsourceidがあります。phpmyadminの外部キー制約に条件を追加することは可能ですか?
製品には製品ID(productID)が与えられ、ユーザーは製品に関する売り手にメッセージを送ることができます。これらのメッセージの場合、特定の製品に関連している場合、sourceidが与えられています。これは基本的に製品IDです。メッセージが商品に関連していない場合、ソースIDは0に設定されます。
販売者が商品を削除するたびに、関連するすべてのメッセージが削除されるたびに、メッセージエントリを削除するように外部キー制約を設定できます。
しかし、sourceidが0に設定された製品に関連しないすべてのメッセージがデータベースに保存されていないことがわかりました。明らかに、productid = 0のプロダクトが存在せず、外部キー制約がメッセージ項目(sourceid = 0)を直ちに削除するためです。
phpmyadminに条件を設定する方法はありますか?外部キー制約がsourceid> 0のときにのみ実行される場合、それを設定できれば、システムはうまくいくはずです。しかし、私はこの条件を設定する方法や、phpmyadminがこの条件を設定できるかどうかはわかりません。
助けてください。どうもありがとうございます。
だから私はnullにソースIDを設定するだけです0の代わりに製品に関連しないメッセージを参照するときはいつでも? – Kevin
@Kevinあなたが念頭に置いていることは分かりませんが、Bill Karwinの答えによると、 'ProductId'を' NULL'に設定し、そのレコードを削除すると、対応するメッセージのカスケード削除を無視する必要があります。 –