• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:GAE 多対多モデルのデータ削除について)

GAE 多対多モデルのデータ削除について

このQ&Aのポイント
  • Google app engin の datastoreで多対多を下記ページなどを参考につくりました。
  • グループのオーナーがグループを削除する際に、参加しているユーザーのgroupから、削除するグループのkeyを削除する必要があります。
  • GAEはデータの変更・削除に結構時間がかかります。仮に数万人所属しているグループがあったとし、このグループをオーナーが削除する場合、グループに所属しているユーザーのgroupに全てアクセスし、該当グループのkeyを削除する操作は非効率(30秒を超える可能性が十分あるの)ではないかと思っています。

質問者が選んだベストアンサー

  • ベストアンサー
noname#161640
noname#161640
回答No.1

GAEは、ちょっと特殊ですからね……。あんまりいい方法とは思えないのですが、削除するときは、単純にGroupsのownerをクリアするだけにしてはどうでしょうか(ownerが、グループの作者を示すデータですよね?)検索時に、グループのownerがないときは「そのグループは抹消済み」として表示しないようにするなど対処しておくわけですね。 そして、それとは別に、CRONなどを使って定期的にownerが空のGroupsを検索し、そのGroupsが保管されているUsersを少しずつ(一度に最大1000ずつとか)取り出してはgroupを更新していく、というのはどうでしょうか。いわば、ガベージコレクションをCRONで作るわけです。あるいは、最悪、手動で定期的に削除してもよいでしょうし……。

endoyuta
質問者

お礼

早速ありがとうございます。ということは、やはり参加ユーザー全員のgroupから該当するkeyを瞬時に問題なく消すことは難しいのですね。。おっしゃるとおり、ownerがグループの作者です。教えていただいた方法で対処したいと思います。ありがとうございました。

関連するQ&A