我计划按 IP 国家/地区在 mysql 中记录推荐点击。
假设我的表名为 referral_clicks
,并具有 id
、referral_id
、country
列。
我现在想到了两种方法:
创建另一个列
clicks
,将每个国家/地区/referral_id 设置为 +1。这意味着我必须首先检查特定的 Referral_id 和国家/地区的行是否已存在,如果不存在,则创建它。为每个请求插入一个新行。我担心的是,表格可能会变得困惑且太大,因为可能会收到很多推荐请求。
对于类似的事情,现在最好的方法是什么,或者是否有更好的方法?
最佳答案
使用INSERT ... ON DUPLICATE KEY UPDATE
。
我建议您创建一个包含以下列的表格。
id (autoincrement)
referral_id
country
clickdate
clicks
我建议您创建一个唯一索引(referral_id,country,clickdate)
。
然后,我建议您每次想要记录点击时使用以下 SQL:
INSERT INTO referral_clicks (referral_id, country, clickdate, clicks)
VALUES ('whatever', 'whatcountry', CURDATE(), 1)
ON DUPLICATE KEY UPDATE clicks=click+1
这将为每个推荐 ID、每个国家/地区、每个日期开始一个新行。如果该行已存在,它将为您增加点击
。
关于MySQL按国家/地区点击日志,最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26125740/