user_idを持つuserテーブルがあります。したがって、すべてのユーザーのコンテンツ、ログ、詳細テーブルなどは、親Userテーブルに対するFKとしてのuser_idを持っています。これはソーシャルサイトです。したがって、ユーザーがサインアップすると、ランダムなuser_idが割り当てられます。ユーザデータのFKにはどのような制約がありますか?
1)user_idは決して変更できないので、私はFKリファレンスで "ON UPDATE CASCADE"を使う必要はないと思いますか?
2)usecaseのuser_ID FKのどこにでも "ON DELETE"または "SET NULL"を設定する必要がありますか?
3)メンバーが自分のアカウントを大部分削除すると、削除フラグが設定されます。しかし、私は2つのケースがあるので、私は2つのケースがあるので、データベースからレコードをすべて削除するようにユーザーにプライバシーを強化しています。
A)ユーザーのすべてのフットプリントを削除(ハード削除)します。したがって、ユーザーが写真を投稿した場合、削除するのはAさんが写真のID 33445を所有していることですが、写真は孤児として保管しています。 (また、ハード削除の場合には、A氏はユーザテーブルから搾取されることになります)。だから、今のユーザーフットプリントを参照しているテーブルは約16個あり、NULLに設定する必要があります。デフォルトのuser_Idは999です。存在しないユーザーを指しています。
B)すべてのフォアプリントとすべてのコンテンツも削除します。したがって、すべて(userIDとobject_iD)はNULLまたは999に設定されています。そして、私がハード削除を行っているなら、私は自分のファイルシステムから写真を物理的に削除する必要があります。
私はこのすべてが制約、トリガー、またはアプリケーション側から処理されているかどうかは確信していませんか?少しのオーバーヘッドでできるだけ簡単かつ迅速に目標を達成することが目標です。
プラットフォーム:MySQL、codeIgnitorPHP、専用ホスティング環境。
よく「半ハード削除」は、i l – SeanD