不知道如何存储一些数据

时间:2011-03-22 16:33:23

标签: c# php data-structures

我正在建立一个网站,让您分享您的音乐品味,它可以与监控媒体播放器(iTunes,无论如何)的桌面客户端配合使用,并将当前播放的歌曲的详细信息发送到网站,它与您的个人资料相关联。

此输出显示在您的个人资料中,其想法是页面镜像您的本地音乐播放器,位于进度条的位置。

但是我无法决定如何存储数据。一旦歌曲结束,它就变得毫无用处,所以像MySQL数据库这样永久的东西似乎毫无意义。

会话变量不起作用,因为执行该工作的脚本不会将您引导至显示输出的页面。我们的想法是,后端脚本只是在收到信息时将信息保存到某个地方,并且您可以在加载配置文件页面时获取最新信息。

我目前正在使用文本文件,作为一个糟糕的临时解决方案,每次只写一个新行然后再读它。

会话变量和SQL之间有什么关系?

如果每次有新数据,我怎样才能让输出页面更新?我需要一种存储它的方法,允许触发事件,因此检查它不能太强烈。

4 个答案:

答案 0 :(得分:1)

你应该在这种类型的密钥上查看具有低缓存过期的memcached。

答案 1 :(得分:1)

我认为(我的)SQL数据库没问题,特别是如果你想显示有人播放的最后几首歌曲。

但是如果你只需要一个临时数据存储来为每个用户保存一首歌曲,你可以使用像memcached这样的键值存储。它将数据直接存储在内存中而不是文件或数据库中。密钥将是唯一的(如用户的名称或ID),值将是当前正在播放的歌曲的数据。

答案 2 :(得分:0)

我肯定会将其存储在带有时间戳的数据库中。对于您的显示查询,您所要做的就是选择最新的(除非它超过一定的时间,以防播放器断开连接)。

最好继续使用这些数据。您可能希望稍后显示他们最常播放的歌曲或其他内容。否则,您始终可以删除旧记录。我怀疑保留它们以后会值得。 (还要考虑隐私的影响。确保告诉用户您在隐私政策中保留的数据类型。)

答案 3 :(得分:0)

我认为你可以使用SQL,只需要一个存储UserId,“当前/最后”歌曲字段,“currentPlaying”(bool)的表,并且每次有新歌时你都会在该字段的顶部写字,这样你每个用户一直只有一行。它仍然是永久性的,但你只能跟踪最后一首歌。

作为旁注,你可能希望以更永久的方式保存用户播放的所有歌曲..如果它应该是音乐品味共享网站,有播放歌曲的历史会让你做一些很好的算法,比如推荐等等。