0

私はウェブアプリを使用するために少額の支払いをしています。

支払う前にアプリを試用できるようにしたいと思います。

これを行うには、一時的なユーザーアカウントを作成し、30分ほど後に再度削除するシステムが必要です。

最初に頭に浮かぶのは、TINYINTタイプの列「isTemp」をaccountsテーブルに追加し、その後、30分ごとにクエリ「DELETEFROMaccounts WHERE isTemp=1」を実行するようにcronjobを設定することです。

しかし...私はこれについて少し緊張しています。朝起きて、アカウントテーブル全体が空になっているのを見つけるのが怖いです。これは不合理な恐れかもしれないと思いますが、アカウントテーブルの近くにスケジュールされたDELETEステートメントが来るのは好きではありません。:)

これについてどう思いますか?これはそれが行われるべき方法ですか?それとも私はこれを再考する必要がありますか?

(事前に)あなたの助けに感謝します。

4

2 に答える 2

1

最適なソリューションは、toactiveinactiveaccount です。ただし、これが現在のコーディングで簡単に実行できない場合は、a でDELETE十分です。datetimeユーザー アカウントの作成時にフィールドを作成することをお勧めします。簡単なcronジョブを作成して先に進み、signup time + 30 minsその効果を確認してからDELETE. これが心配な場合は、最初の数日間はスクリプトから手動でメールを送信し、手動でアクションを実行して、正しく機能していることを確認してください。

activeandを使用することの良い点inactiveは、すべてのデータを失うのではなく、単純な bool 変更であることです。

それが役立つことを願っています!

于 2012-04-22T07:42:16.107 に答える
0

問題は、ユーザーが 29 分にログインすると、システムは 30 分にユーザーを削除し、1 分間しかアクティブになっていないにもかかわらず、アカウントが削除されることです。

「DELETE FROM accounts WHERE isTemp = 1 AND account_created > {30 mins ago}」を実行することをお勧めします。

(30分以上前のタイムスタンプを計算するコードを挿入してください)

ps 30 分は、一時的なアカウントにとって長い時間ではありません。おそらく 2 時間です。

于 2012-04-22T07:43:36.773 に答える