Вопрос о дизайне модели деятельности / таблицы - PullRequest
0 голосов
/ 12 января 2011

У меня есть модель активности, которая отслеживает активность каждого пользователя. В этой модели у меня есть следующие столбцы: id, user_id, media_id, type, creation_at, updated_at

Одним из видов деятельности, которое меня особенно беспокоит, является просмотр песни. Например. Когда пользователь нажимает на песню, она начинает играть. В то же время это происходит, мое приложение создает для этого действие каждый раз, когда пользователь просматривает страницу песни.

Это означает, что я мог бы хранить временную шкалу истории действий пользователя. т.е.

Foobar listened to Song A 2 hours ago
Foobar listened to Song A yesterday
Foobar listened to Song B 2 days ago
etc

В будущем, если приложение / сайт приобретет большую популярность, это каким-то образом повлияет на производительность базы данных? Я обеспокоен тем, что эта таблица будет заполняться очень быстро только для каждого пользователя, просматривающего песню. Я не могу не смотреть видео на YouTube, который имеет около 100 000 просмотров на видео.

Должен ли я волноваться? Или все дело в добавлении индексов и обеспечении того, чтобы БД могла масштабироваться с точки зрения памяти и дискового пространства?

1 Ответ

1 голос
/ 12 января 2011

Я думаю, что модель активности делает слишком много, так как вы также храните данные, которые никогда не нужны.

      table
------------------------
user_id        int
media_id       int
listened_at    TIMESTAMP

Я опускаю тип, поскольку это должно быть в контексте media_id

Если вы действительно получите много просмотров за просмотр, простая база данных не сможет справиться с этим.Даже кластер баз данных devent может иметь проблемы с этим.Но я бы на самом деле не беспокоился об этих вещах на ранней стадии.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...