[PHP-users 27493] Re: 重複を許さない方法

陸奥 mutsu @ ruby.plala.or.jp
2005年 11月 15日 (火) 04:51:37 JST


陸奥と申します。
投稿データテーブルの日付カラムとサーバ時間との比較ではなく、
別の切り口で考えてみました。
穴があるかもしれませんが・・・。

ひと月の投稿履歴テーブルを作成(UID+年+月+31日分=34カラム)
日の値が0ならその日は未投稿、1なら投稿済み
ユーザとサーバのやり取り------------------------------------
ユーザ「UID:XXXXでデータベースに接続します」

投稿時、月の値が前月のままであれば当月に変更し日の値は全部0
サーバ「UID:XXXXさん。当月の利用はありません」

投稿時、月の値が当月であれば値が1の日を返し、
本日投稿可能かも知らせる。
サーバ「1日と2日に投稿されています。本日投稿可能です」

ユーザ「UID:XXXXですが、本日はこの内容でお願いします」
この時点では本日の値が0なので。
サーバ「本日投稿可能です。投稿を受け付けました」

ユーザ「UID:XXXXですが、本日はこの内容でお願いします」
本日の値は1に変更されているので。
サーバ「本日投稿していますが?」

以下参考まで-------------------------------------------------
ユーザ「UID:XXXXですが、1日の投稿だけ削除してください」
1日の値が1であることを確認して。
サーバ「確かに投稿されていますね。削除完了しました」

ユーザ「UID:XXXXですが、2日の投稿を訂正したいのですが」
サーバ「本日分のみ訂正可能です」

日付パラメータに不正な値が代入されていた場合。
ユーザ「このパラメータに日付を入れれば投稿日の指定が出来そうですが」
サーバ「日付スタンプはこちらで登録直前に押します」
サーバ「勝手に記入しないでください。それでは。」


PHP-users メーリングリストの案内