我bulding應用程序的投票能力(+ 1/-1),並試圖爲此具有簡單快速的mysql表結構。到目前爲止,我的想法很簡單,就是有這樣的:知識產權歷史投票系統
tbl_votes商店爲特定對象票值:
CREATE TABLE IF NOT EXISTS `tbl_votes` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`vote` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
tbl_votes_ips存儲的IP < =>投票的歷史使某些IP只能投一次:
CREATE TABLE IF NOT EXISTS `tbl_votes_ips` (
`vote` int(11) NOT NULL,
`ip` int(11) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
的目的是降低插入新的值時,SQL調用。目的是在高負載的網站上使用。這些功能的最佳做法是什麼?
請分享你的經驗。
附:我已經做了投票IP對唯一鍵的想法,所以我沒有選擇和,而只是處理MySQL的「沒有獨特的價值」的錯誤:
ALTER TABLE `tbl_votes_ips` ADD UNIQUE (
`vote` ,
`ip`
);
但是,這不會對當的情況下工作用戶正在改變它的選擇。所以無論如何,我需要打額外的電話來搜索IP和投票。
你意識到這隻會讓成千上萬的人在弗吉尼亞共享AOL代理服務器的人投票嗎? ...或者對任何給定代理服務器後面的所有人投一票。僅限IP是一種非常不可靠的解決方案。 – 2013-03-11 17:25:00
是的我意識到,這就是爲什麼我要求幫助,請發佈更好的解決方案,我將不勝感激 – Serg 2013-03-11 17:29:08