2011-07-20 8 views
3

私は上向き投票システムのヘルプを探しています。私が投票したユーザのために投票されたユーザとすることができ投票システムに論理的な問題がある

CREATE TABLE parking_spots_votes(
vote_id INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY, 

parking_spot_id INTEGER DEFAULT NULL, 
    key parking_spot_id_fk (parking_spot_id), 
    FOREIGN KEY (parking_spot_id) REFERENCES parking_spots(id), 

uploaded_by_user_id INTEGER DEFAULT NULL, 
    key user_id_fk (uploaded_by_user_id), 
    FOREIGN KEY (uploaded_by_user_id) REFERENCES parking_angel_users(id), 

vote_casted_user_id INTEGER DEFAULT NULL, 
    key vote_cast_user_id_fk (vote_casted_user_id), 
    FOREIGN KEY (vote_casted_user_id) REFERENCES parking_angel_users(id), 

vote_type INTEGER NOT NULL 
) 

投票タイプのために投票された情報の一部(駐車場)を参照投票表を持っている現時点では

投票なしの場合は0、投票の場合は1、ダウンボートの場合は2

私は少し論理的なトラブルを抱えています。例えば

ユーザーはすでに投票していれば、彼はその後、挿入されていない場合は、彼はその後、ないている場合は、ユーザーがすでにparking_spot

  • に投票した場合どのように私はチェックしますか何

    1. 返還は既に投票されています。

    2. ユーザー(uploaded_by_user_id)のスコアを更新するにはどうすればよいですか。 1つは上向き投票に、1つは下向き投票に使用されます。

    ので、あなたは再び投票カント場合は、すでに投票されている場合ので、一般的な流れは次のようになり、

    ユーザーは、サーバーのチェックを投票を押します。 vote_casted_user_id =現在のユーザー、parking_spot_id =現在の情報、uploaded_by_user_id =情報をアップロードした人物、 の場合、uploaded_by_userスコアは投票タイプによって更新されます。

    私はMySQLサーブレットとMYSQLデータベースとのJDBC接続を使用しています。

    私のためのアイデアですか?あなたはparking_spot_idを使用して主キーを設定することを検討することができます

  • +2

    を役に立てば幸いSELECT SUM(vote_type) FROM table WHERE uploaded_by_user_id=...

    の問題です。 – Moonbeam

    答えて

    1

    、uploaded_user_idは、投票が同じアップロードされたユーザーの同じ駐車場に同じユーザーから来ているときに、あなたが例外をキャッチし、あなたが持っている「ということを扱うことができ

    をcasted_user_id既に投票した!

    あなたは、これが あなたがparking_spot_id、uploaded_user_id、casted_user_idとレコードの数を取得し、その選択を書く投票を保存する前に、独自の制御機構

    を書き込むことによって、プロセスを処理することができ気に入らない場合であれば、カウントが0より大きいこれはすでに投票していることを意味し、メッセージを保存しておかないでください。そうでなければ投票を保存し、ユーザーのスコアを投票で増やしてレコードを更新します。

    これが役に立ちます。

    3
    1. ユーザーが既にparking_spotに投票した場合はどうなりますか?
    2. ユーザーがすでに投票しているかどうか、また、挿入していないかどうかを確認するにはどうすればよいですか?

    これらの基本的に同じ質問です:どのように私は、ユーザーがすでにparking_spotに投票したかどうかをテストするのですか?まあ、parking_spot_idとvote_casted_user_idが一致するレコードを取得するクエリを実行するだけです。

    ユーザー(uploaded_by_user_id)のスコアを更新するにはどうすればよいですか。 1つは上の投票に、もう1つは下に投票するためのものです。

    もしそれほど問題がなければ、私はup_toteの場合は+1、downvoteの場合は-1にvote_typeの値を変更します。そして、それは私がフロリダがやった、これは

    関連する問題