こんにちは。株式会社Pentagonの山本です。

アプリ開発で必須とも言える、ユーザーの退会処理ですが、退会時に何も考えずにユーザー情報を削除すると運用時に不具合が生じたりします。

今回の記事では、ユーザーの退会処理で考えるべきことについてまとめました。

結論から言うと、「物理削除と論理削除を理解した上で、退会時にどのデータを消して、どのデータを残すのか」決める必要があります。

【前提】データの削除には2種類あります。

削除には、物理削除と論理削除の2種類があります。

物理削除とは、データを完全に削除する、通常の削除処理のことを指します。 一方で論理削除とは、現在有効なデータかどうかを示す値を変更することで、データを削除したことにする方法です。例えば、Userにdeletedというフラグを用意し、deleted=falseをdelete=trueと変更することで削除された状態にします。

物理削除

論理削除

削除される

削除された「扱い」になる

データは完全に消える

削除された扱いになる

削除の取り消し不可

削除の取り消しが可能

ユーザーが退会したときに、どのデータを物理削除し、どのデータを論理削除するか考える必要があります。

ユーザーの個人情報と関連データを洗い出す

まずはユーザーの個人情報と関連データを洗い出して、整理してみましょう。

例えば、Facebookを例に考えてみます。

ユーザーの個人情報

  • メールアドレス
  • 氏名
  • 居住地
  • 出身地

ユーザーの関連データ

  • 投稿
  • コメント
  • チャットメッセージ
  • 写真

退会時にどのような処理をするか決める

基本的に個人情報は退会時に完全に削除する必要があります。 ただし、ユーザーのデータ自体は残しておきたい(論理削除したい)というケースも多いです。

次の表は、上述したように洗い出したユーザーの個人情報と関連データを元にして、具体的な退会時の処理を決めた例です。

ユーザーのデータ

削除方法

メールアドレス

メールアドレスはマスキングして削除する。yamamoto@blog.pentagon.tokyouuid@example.com と変更して削除したことにする。

 氏名 

氏名は「退会したユーザー」と変更して削除したことにする。

居住地 

物理削除する。

出身地 

物理削除する。

写真

物理削除する。

コメント

退会後も残しておく。

チャットメッセージ

退会後も残しておく。

注意:例えば、支払い履歴などユーザー退会後も残しておくべきデータもあるので注意が必要です。

まとめ:退会処理は要件定義の段階で明確にしておく

ユーザーの退会時には、何を消して何を残すか、消すにしても物理削除するのか論理削除するのか、が重要です。物理削除したデータは復元できないので、運用時のデータ分析を考慮して削除方法を検討する必要があります。

特に、ユーザー同士がコミュニケーションをするアプリでは、ユーザーが退会したユーザーの情報の表示を試みるケースもあります。このときにどういったUIにするのかにも影響を及ぼすので、慎重に検討しましょう。

このように、ユーザーの退会処理は意外と考えることが多いです。 退会時にデータを削除をしたことで不具合が発生することもあります。 けっこう工数がかかるので、要件定義の段階で明確にしておくことが必要です。