2011-11-10 20 views
-5

私は、コメントベースのチケットシステムを使用するシステムを構築しています。私は、ユーザーを削除済みとしてマークしたり、レコードを完全に削除したりする考え方について、いくつか意見を述べたいと思います。ソフト削除VSハード削除

理想的には、システムに古いアカウントがないようにしたいが、同時にユーザーを削除することで、チケットシステム内のコメントが意味をなさないことがあります。

誰もこのタイプの問題の解決策を思いついていますか?これまでの私の考え方:

  1. ユーザーアカウント、コメント、およびその他すべての関連データを削除します。
  2. ユーザーを削除済みとしてフラグを付け、再度購読すると新しいアカウントを作成します。
  3. ユーザーに削除済みとしてフラグを付けますが、ユーザーが新しい更新プログラムを追加する代わりに、更新プログラムを再度購読しようとしていて、削除されていないとフラグを付けようとした場合にフラグを立てます。
  4. ユーザーアカウントのみを削除します。次に、コメントなどを取得して関連するIDをチェックすると、結果が見つからない場合、「ユーザーアカウントは削除されました」というメッセージとともにコメントを表示します。

あなたはどう思いますか?

+0

ここに広告が許可されていますか?適切でないと私を打つ。 –

+1

-1:他のソフトウェアplsにプラグがありません – Elemental

+0

コメントのおかげで、私はオプション3に行くと思います。 – ORStudios

答えて

1

私は第三の選択肢が最良の選択であると言えるだろう

データベースからユーザーを削除しようとすると、このための私の推論は、データベースの生活のために維持されなければならないデータベースに格納されている任意のチケットですそのユーザーのデータベースへの参照を削除します。

そのユーザがチケットシステムに新しいアカウントを作成するために行くとき

を(ユーザーのIDは、彼/彼女が作成した可能性のあるすべてのチケットにリンクされますので、ザッツデータベースは、あなたがそれを削除できるようになる場合)、数ヶ月前に彼が作成した可能性のあるチケットは消滅し、現在はnullで作成されている可能性があります。

+1

削除されたユーザーのみがサインインできます(アカウントを再びアクティブにする)。あなたが削除されたユーザーとしてサインアップできるようにすると、盗まれたアイデンティティに問題が生じる可能性があります。しかし、削除されたユーザーが再びサインインできるようにすると、ユーザーが自分のアカウントを削除できるようにすることは無意味です... –

+0

はい、あなたのアカウントを削除しない...なぜ彼らに再度サインアップする必要がありますか...既存のログイン詳細 – adam2510

+1

まさに!だから、削除されたユーザーとアクティブではないユーザーの違いは何ですか?彼らは両方ともサインインすることができます!それが私の言いたいことです。 –

0

私は常に最後の解決方法を使用します:ユーザーアカウントのみを削除し、ポスターのアカウントがもう存在しない場合は「アカウントが削除されました」というメッセージを表示します。ユーザーがユーザー名を変更できないようにする場合は、ユーザーのIDを超えてポスターのユーザー名を保存し、ユーザーがアカウントを削除した場合はプレーンテキストとして表示し、ユーザーがまだアクティブな場合はリンクとして表示することもできます。

+0

IMO、あなたの 'いつもの'オプションは**最悪**です。 – Johan

+0

? –

+0

データベースの全ポイントは、**保存することです**。あなたのデータベースをスパムするユーザーがいて、ユーザーアカウントを削除し続けると、あなたに悲しみを与えている人を追跡するのが非常に難しくなります。 – Johan

0

ユーザー<表現している場合 - FOREIGN KEYと>コメントの関係を、あなたコメントを削除したり、NULLのいずれかにコメントの関連付けられたユーザーを更新せずにユーザーを削除することはできませんまたはいくつかの「削除されたユーザーを指すように偽のユーザーアカウント(いずれの場合も、コメントを投稿したユーザーに関する情報が失われます)。

+0

'on delete set null'や同様の節を追加することができます。 – Johan

+0

それは本当ですが、私のポイントはあなたがユーザーとの関係を失うことです。ユーザーアカウントが再び表示される場合は、その関係を覚えておくことを期待している場合、それは起こりません。 –

0

これは実際に使用するケースによって異なります。
個人的に私は完全にデータベースからユーザーアカウントのようなものを削除することはありません。

したがって、オプション1はアウトです。 (しかしそれは私だけです)
オプション2には、たくさんのユーザアカウントが絡んでいるという問題があります。
オプション3 -cough-

オプション4は、トラブルを求めている監査証跡-cough-最良の選択肢のように見える、あなたは別のテーブルへのリンクを持っていますが、そのデータが削除されています。

0

私が書いた発券システムは基本的に3番でした。それ以外のものは、あなたが保管しなければならない監査証跡を破棄します。

古いものを取り除く必要がある場合は、古いチケットの消去を設定することです。その後、アカウントのすべての関連チケットがなくなったら、アカウントを削除することができます。

関連する問題