MySQL数据库结构用于存储哪些文件以及用户下载的次数?

时间:2013-01-01 16:13:20

标签: php mysql database structure

我正在创建一个数据库,用于存储用户下载媒体文件的次数,以及用户下载了哪些媒体文件(基于IP,无需登录)。我只是不确定MySQL数据库的正确结构。

我已经拥有一个包含所有媒体文件的数据库,因此计数不会成为问题,但我也希望能够看到谁下载了该文件。我将使用PHP来检索内容,但我不确定如何最有效地获取它。所以类似:“XYZ.mp3有20次下载。[IMN CMS] 点击 XYZ.mp3已经被1.2.3.4下载了4次和16个其他IP”

另外,我希望能够看到1.2.3.4已经听过XYZ.mp3四次,而HWM.mp3一次听过......等等。

此外,我最终想知道他们听过多少mp3文件。 (我的网站上有一个内置的播放器)我也希望这是我可以看到的,这么多人根据文件听了这么多,或者这个用户已经听过这个文件了。

我知道如何计算多少次,如前所述,但我不知道如何最有效地构建第二部分,以便快速收集数据。

此外,文件的数量每周线性增长,最终它将变成一个非常大的数字,所以我不确定是否有200列(现在)根据需要扩展是要走的路?我不希望有庞大的用户群,但你永远不会知道。我不想稍后进行重组和重新编码,因为它确实如此。

感谢您的帮助,如果您有任何疑问,请与我联系。

2 个答案:

答案 0 :(得分:1)

如果是我,我有3张桌子:

  1. 连接 - 保留IP和会话ID以及一些唯一的连接ID。
  2. 下载 - 保留文件ID和连接ID。这可以让您知道文件下载的次数以及连接的次数。
  3. 播放 - 保留文件ID,连接ID和文件dl%。使用http partial content跟踪给定连接ID已播放的每个文件的数量。
  4. 在这三者之间,你可以根据自己的要求建立统计数据。

答案 1 :(得分:0)

如果我是你,我会做以下事情:

1。我会给每个文件一个id号,mysql可以自动增加。

2. 然后我会创建另一个表,其中存储了ip和用户下载的文件的ID。

希望这有帮助。