這跟database 好像沒甚麼關係...
其實不用想這麼複雜, 每次就run query 去查票數就好了
這應該只是一個簡單的select count sql, 資料庫絕對有能力應付
用session 也不是好方法,
因為 web server如果reboot/reset, session data就不見了
※ 引述《magicfx (去南半球度假)》之銘言:
: 我想要設計一個投票系統
: 使用者不必註冊也不必登入
: 用IP來判定使用者的身分
: 每天限制0:00-24:00
: 針對站內各議題投票
: 最多只能投一定的票數
: 好比說10票
: 超過24:00再用相同的IP瀏覽的話
: 又可以投10票
: 前一天沒投完的票 無法累積到第二天
: 請問這樣的系統該怎麼設計比較好?
: 我想到一個辦法 但不知道可不可行或是效率好不好
: 就是用Session記錄使用者的ip
: 然後下sql query去查出該ip今天已經投了幾票
: 記錄剩餘票數在session裡
: 然後該使用者每次投票前
: 都先檢查session裡剩餘票數是否大於零
: 每投一票
: 剩餘票數就減1
: 我的問題是
: 如果使用者開多個瀏覽器 這樣是否會有問題
: 假設同時開兩個瀏覽器
: ip一樣
: 這樣兩個瀏覽器都可以投10票?
: 所以總計是20票?
: 如果會有這樣的問題
: 是否得在每次使用者投票前
: 都下一次sql query檢查已投票數?
: 這樣會不會很吃伺服器資源?
: 有沒有更好的設計呢?
: 麻煩指點迷津
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 75.18.242.155