2014-09-30 4 views
0

Я планирую регистрировать реферальные клики в mysql по стране IP. Скажем, мой стол называется referral_clicks и имеет столбцы id, referral_id, country. У меня есть 2 подхода в виду сейчас:MySQL клик по стране, лучший подход

  1. Создать еще один столбец clicks который установлен +1 для каждой страны/referral_id. Это означает, что сначала мне нужно будет проверить, существует ли строка для конкретного referral_id и страны, а если нет, создайте ее.

  2. Вставьте новую строку для каждого запроса. Меня беспокоит, что таблица может быть беспорядочной и слишком большой, так как может потребоваться очень много запросов на реферал.

Какой был бы лучший подход сейчас для чего-то подобного, или существует ли лучший подход?

ответ

1

Использование 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 

Это запустит новую строку для каждого направления идентификатора для каждой страны, для каждой даты. Если строка уже существует, она увеличит clicks.

+0

не знал, что функция существует в MySQL, спасибо! – Marius

Смежные вопросы