Я создаю небольшой инструмент для мониторинга страниц и хочу регистрировать клики на данной странице.
Важно, чтобы позже я мог запрашивать клики в определенный день на определенной странице и т. Д.Пока это то, что я создаю, но я не уверен, что это лучшее решение.
$clicks = Click::where('page_id', $pid)
->whereDate('created_at', DB::raw('CURDATE()'))
->get();
if($clicks->isEmpty()) {
$clicks = new click;
$clicks->clicks = 1;
$clicks->page_id = $pid;
$clicks->save();
}
else {
$clicks->first()->increment('clicks');
}
И когда я хочу показать его пользователю, я буду делать следующее:
@foreach ($page->click as $click)
<?php
if(check_in_range($from, $to, $click->created_at->format('Y-m-d'))) {
$clicks = $clicks + $click->clicks;
}
?>
@endforeach
{{ $clicks }}
Таким образом, каждый раз, когда кто-то посещает страницу, я создаю новую строку в базе данных, но если уже есть щелчок для этого дня, я увеличиваю его.
Другое решение может бытьпросто регистрировать каждый клик как одну строку, но это очень быстро будет много строк.
Я ищу предложения и лучшее решение (если есть):)