代码之家  ›  专栏  ›  技术社区  ›  arturh

如何设计用于存储和检索搜索统计信息的数据库表结构?

  •  0
  • arturh  · 技术社区  · 17 年前

    • 按公司名称
    • 按区号
    • ...


    什么信息最相关?我应该如何查询这些信息?

    3 回复  |  直到 17 年前
        1
  •  1
  •   Chad Birch    17 年前

    这取决于不同搜索模式的工作方式,但一般来说,我认为一个包含3列的表可以工作:

    SearchType    SearchValue    Count
    

    通过这样做,您将在以后查询它时有相当大的灵活性。您可以找出每种类型最流行的搜索是:

    ... ORDER BY Count DESC WHERE SearchType = 'Some Search Type'
    

    您可以找出最流行的搜索类型:

    ... GROUP BY SearchType ORDER BY SUM(Count) DESC
    

        2
  •  1
  •   colithium    17 年前

    这是一个相当普遍的问题,但我会这样做:

    选择1 如果要严格区分所有三种搜索类型,请为每种类型创建一个表。对于公司名称,您可以简单地存储公司ID(假设您的网站维护公司列表)和搜索计数。对于区号,请存储区号和搜索计数。如果区号不存在,请将其插入。提供的服务主要取决于您的设置。最常用的方法是存储关键字和搜索计数,如果还没有,则再次插入。

    也可以选择存储搜索日期信息。例如,您将有一个带有提供的服务关键字和唯一ID的表。您将有另一个带有该ID的FK和SearchDate的表。这样,您就可以在最大限度地减少存储的同时,了解数据随时间的变化。

    选择2

        3
  •  0
  •   MarlonRibunal    17 年前