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