php - 网站访问数据库设计

标签 php mysql sql asp.net database

对于网站访问量统计,您更喜欢哪种表格方案? enter image description here

对于方案a: 检查 IP 是否退出,我们将计数增加一级并且不添加新 IP。

方案b: 我们每次都添加新的 IP,并在我们的应用程序中使用 GroupBY 进行报告。

最佳答案

第一个是完美的。

为什么?

  1. 看,对于一位访问者,您只存储一条记录。一个访客不能有多个记录,就像一个客户有多个地址一样。在这种情况下,地址是多个。但客户将只有一个。同样的情况也适用于您的示例。

  2. 您无需通过为同一用户/访问者多次添加同一行来增加数据库大小。

  3. 对于SELECT,您将需要获取多条记录,尽管大多数记录都是相同的。

    因此,如果您按照方式 2 进行操作,则会为具有相同 ip 的一位访问者插入 1000 个条目。 如果您按照方式 1 进行操作,您将有 1 个条目使用 countVisited 进行更新。现在告诉我是获取 1000 行更快还是获取 1 行??

  4. 如果你想更新一些参数你需要在1000条记录中搜索访问者的记录然后修改它。您可以告诉自己哪种方法更好。

关于php - 网站访问数据库设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30046645/

相关文章:

php - 使用 PHP 显示登录错误

php - 如果 UPDATE 失败,我应该如何处理 INSERT

c# - 设计一个应用程序,但我可以在应用程序运行时创建新的 MySQL 字段吗?

javascript - 弹出成功更新数据库 PHP

sql - 不稳定的 Postgresql C 函数

java - 解码 MIME(HTML+附件)

php - 按不同列进行分组和排序

将数据库从 MySQL 更改为 SQLite 后的 Java 项目错误

sql - 如何在字符oracle之后获取字符串

php - 按时间戳选择 block 顺序并按 id 随机化