Предположим, у меня есть таблица с именем products
, и я хочу знать, сколько раз продукты искали, просматривали и покупали. Я хочу также знать , когда продукты были просмотрены, просмотрены и куплены.Как построить масштабируемую статистическую систему?
Мой первый подход должен был составить таблицу с product_id
, поле, указывающее, если элемент был 0=searched
, 1=viewed
и 2=purchased
и другое поле поддержания'datetime' события, так что я могу фильтровать по времени.
Это работает очень хорошо, но НЕ масштабируется. Если у меня есть 50 000 продуктов в базе данных и 1000 пользователей, каждый из которых выполняет 5 запросов каждый день, то у меня есть 50,000 * 1,000 * 5 = 250'000,000
новые записи в день, поэтому это не выглядит идеальным решением для меня.
У меня есть несколько идей о том, как улучшить это, но я бы очень хотел прочитать о лучших способах, так как я не доволен своим.
Но эта таблица расскажет мне о поиске, а не о продуктах. –
Да, это то, что вас интересует захват. После того, как у вас есть эти данные, вы всегда можете присоединиться к нему с таблицей продуктов, чтобы получить продукты, на которых человек искал. –