【问题标题】:How should I store user agent data?我应该如何存储用户代理数据?
【发布时间】:2010-12-20 00:16:59
【问题描述】:

当我们为访问者检测到这些项目时:

  • 浏览器名称
  • 浏览器版本
  • 操作系统名称
  • 操作系统版本
  • 屏幕分辨率
  • 屏幕深度
  • Flash 已启用
  • ...

应该将这些都存储在数据库中的单独列中,还是应该将它们全部存储为用户代理字符串,然后在应用程序中分解?

为了安全起见,我应该使用varchar(255),还是这些项目有明确定义的数据类型?我使用 MySQL 和 PHP

【问题讨论】:

    标签: php user-agent visitor-statistic


    【解决方案1】:

    这真的取决于你想用这些信息做什么。如果您计划将数据用于非常详细的统计信息,请使用单独的列,以便您可以运行详细的查询,例如“为使用 Internet Explorer 6 的用户显示所有屏幕分辨率”等。

    如果您不希望需要如此详细的统计信息,将用户代理字符串存储在一个字段中通常可以正常工作。

    【讨论】:

      【解决方案2】:

      您应该将每个项目存储在其自己的列中。这样您就可以轻松查询和汇总数据。

      在插入时解析一次很便宜。解析每个查询非常昂贵。

      【讨论】:

        【解决方案3】:

        这些项目没有定义的数据类型,因此您可以使用varchar(255) 或更小。最好在单独的字段中将此值添加到数据库中,因为它对性能没有明显影响+插入完成一次,读取 - 更多次,那么为什么不拆分一次,在写入时,而不是在每次读取时? :)

        【讨论】:

          猜你喜欢
          • 2021-04-17
          • 2012-06-20
          • 1970-01-01
          • 1970-01-01
          • 2019-01-11
          • 2011-09-05
          • 2018-09-22
          • 2017-02-26
          • 2018-02-03
          相关资源
          最近更新 更多