【アプリ設計者必見】ユーザー退会処理の仕様の決め方をわかりやすく解説!
こんにちは。株式会社Pentagonの山本です。
アプリ開発で必須とも言える、ユーザーの退会処理ですが、退会時に何も考えずにユーザー情報を削除すると運用時に不具合が生じたりします。
今回の記事では、ユーザーの退会処理で考えるべきことについてまとめました。
結論から言うと、「物理削除と論理削除を理解した上で、退会時にどのデータを消して、どのデータを残すのか」決める必要があります。
【前提】データの削除には2種類あります。
削除には、物理削除と論理削除の2種類があります。
物理削除とは、データを完全に削除する、通常の削除処理のことを指します。 一方で論理削除とは、現在有効なデータかどうかを示す値を変更することで、データを削除したことにする方法です。例えば、Userにdeletedというフラグを用意し、deleted=falseをdelete=trueと変更することで削除された状態にします。
物理削除
論理削除
削除される
削除された「扱い」になる
データは完全に消える
削除された扱いになる
削除の取り消し不可
削除の取り消しが可能
ユーザーが退会したときに、どのデータを物理削除し、どのデータを論理削除するか考える必要があります。
ユーザーの個人情報と関連データを洗い出す
まずはユーザーの個人情報と関連データを洗い出して、整理してみましょう。
例えば、Facebookを例に考えてみます。
ユーザーの個人情報
- メールアドレス
- 氏名
- 居住地
- 出身地
ユーザーの関連データ
- 投稿
- コメント
- チャットメッセージ
- 写真
退会時にどのような処理をするか決める
基本的に個人情報は退会時に完全に削除する必要があります。 ただし、ユーザーのデータ自体は残しておきたい(論理削除したい)というケースも多いです。
次の表は、上述したように洗い出したユーザーの個人情報と関連データを元にして、具体的な退会時の処理を決めた例です。
ユーザーのデータ
削除方法
メールアドレス
メールアドレスはマスキングして削除する。yamamoto@blog.pentagon.tokyo → uuid@example.com と変更して削除したことにする。
氏名
氏名は「退会したユーザー」と変更して削除したことにする。
居住地
物理削除する。
出身地
物理削除する。
写真
物理削除する。
コメント
退会後も残しておく。
チャットメッセージ
退会後も残しておく。
注意:例えば、支払い履歴などユーザー退会後も残しておくべきデータもあるので注意が必要です。
まとめ:退会処理は要件定義の段階で明確にしておく
ユーザーの退会時には、何を消して何を残すか、消すにしても物理削除するのか論理削除するのか、が重要です。物理削除したデータは復元できないので、運用時のデータ分析を考慮して削除方法を検討する必要があります。
特に、ユーザー同士がコミュニケーションをするアプリでは、ユーザーが退会したユーザーの情報の表示を試みるケースもあります。このときにどういったUIにするのかにも影響を及ぼすので、慎重に検討しましょう。
このように、ユーザーの退会処理は意外と考えることが多いです。 退会時にデータを削除をしたことで不具合が発生することもあります。 けっこう工数がかかるので、要件定義の段階で明確にしておくことが必要です。