Не уверен, как хранить некоторые данные - PullRequest
1 голос
/ 22 марта 2011

Я создаю веб-сайт, который позволяет вам делиться своими музыкальными вкусами, работает с настольным клиентом, который контролирует ваш медиаплеер (iTunes и т. Д.) И отправляет сведения о песне, которая в данный момент воспроизводится, на сайт, где это связано с вашим профилем.

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

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

Переменные сеанса не работают, потому что выполняющий работу скрипт не направляет вас на страницу, которая отображает вывод. Идея заключается в том, что серверный скрипт просто получает информацию по мере ее поступления и сохраняет ее где-то, и вы можете получать последнюю информацию всякий раз, когда загружаете страницу профиля.

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

Что существует между переменными сеанса и SQL?

А как мне заставить страницу вывода обновляться каждый раз, когда появляются новые данные? Мне нужен способ его хранения, позволяющий запускать события, поэтому проверка не должна быть слишком интенсивной.

Ответы [ 4 ]

1 голос
/ 22 марта 2011

Вам следует изучить memcached с низким сроком действия кэша для ключей этого типа.

1 голос
/ 22 марта 2011

Я думаю, что (Моя) база данных SQL будет в порядке, особенно если вы хотите показать последние несколько песен, которые кто-то играл.

Но если вам просто нужно временное хранилище данных для хранения одной песни на пользователяВы можете использовать хранилище значений ключей, например memcached .Он хранит данные непосредственно в памяти, а не в файле или базе данных.Ключ будет уникальным (например, имя пользователя или идентификатор), а значением будут данные о воспроизводимой в данный момент песне.

0 голосов
/ 22 марта 2011

Ну, я думаю, что вы могли бы использовать SQL, просто иметь таблицу, в которой хранится UserId, поле «current / last» song, «currentPlaying» (bool), и вы продолжаете писать поверх этого поля каждый раз, когда появляется новая песня Таким образом, у вас будет только одна строка для каждого пользователя. Он все еще постоянен, но вы отслеживаете только последнюю песню.

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

0 голосов
/ 22 марта 2011

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

Возможно, лучше остаться наэти данные.Вы можете захотеть позже, чтобы показать, какие песни они играют больше всего или что-то.В противном случае вы всегда можете удалить старые записи.Я подозреваю, что держать их стоит позже.(Также учтите последствия этого для конфиденциальности. Обязательно сообщите своим пользователям, какие данные хранятся в вашей политике конфиденциальности.)

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