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

标签 php mysql database structure

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

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

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

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

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

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

感谢您的帮助,如果您有任何疑问,请告诉我。

最佳答案

如果是我,我会有 3 张 table :

  1. 连接 - 使用一些唯一的连接 ID 保留 IP 和 session ID。
  2. 下载 - 保留文件 ID 和连接 ID。这可以让您知道文件已下载了多少次以及通过哪个连接下载。
  3. 播放 - 保留文件 ID、连接 ID 和文件 dl %。使用 http 部分内容 跟踪给定连接 ID 已播放每个文件的量。

在这三者之间,您可以构建您所要求的统计数据。

关于php - MySQL数据库结构用于存储哪些文件以及用户下载的次数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14111980/

相关文章:

javascript - 带有数字键的对象无论如何都会发送所有以前的数字

Mysql:合并相同的值

php - MYSQL中的WHERE查询

php - jquery 与 PHP mySQL 聊天

php - 在 PHP 中将 Unix 纪元时间戳转换为 MySQL 时间戳

php - 我无法使用 php 将信息插入 mysql 数据库

c# - 为什么我的 C# 中的 SQL 代码不起作用?

java - 需要帮助设计员工和经理关系

database - 复制 vs 同步框架 vs Service Broker

php - UTF-8贯穿始终