命中计数器:单独的日期 + 时间字段与一个 DateTime2 字段
Hit Counter: Separate Date + Time Fields vs one DateTime2 field
我正在计划一个点击计数器,我计划进行许多报告查询以显示一天、过去一周、过去一个月等的总点击数,以及一个可以提供图表的查询显示特定日期范围内特定页面的一天中什么时间最受欢迎。
考虑到这一点,将 DATE
存储在与发生命中的 TIME
不同的字段中,然后添加索引是否有益?对于其中一些查询,我会使用范围(大于 x 且小于 y)的 where clause
。我确实希望有关于 Date
和 Time
的查询,例如 "within the past 6 months, show me number of hit grouped per hour of the day."
我是不是把它复杂化了?我应该只使用一个 DateTime2(0)
字段还是为此使用两个字段有一些优势?
我认为您正在使用这种方法 premature optimization。
使用日期时间。在适当的时候(即在您的应用程序达到生产状态并且您对实际需求及其执行方式有了更好的了解之后),您可以例如引入视图以一种对任何 reporting/querying 更有用的方式聚合数据你要经常表演。
在最极端的情况下,您甚至可以重构架构并将所有内容从 Datetime 迁移到两个不同的字段,但我怀疑这是否必要。
我正在计划一个点击计数器,我计划进行许多报告查询以显示一天、过去一周、过去一个月等的总点击数,以及一个可以提供图表的查询显示特定日期范围内特定页面的一天中什么时间最受欢迎。
考虑到这一点,将 DATE
存储在与发生命中的 TIME
不同的字段中,然后添加索引是否有益?对于其中一些查询,我会使用范围(大于 x 且小于 y)的 where clause
。我确实希望有关于 Date
和 Time
的查询,例如 "within the past 6 months, show me number of hit grouped per hour of the day."
我是不是把它复杂化了?我应该只使用一个 DateTime2(0)
字段还是为此使用两个字段有一些优势?
我认为您正在使用这种方法 premature optimization。
使用日期时间。在适当的时候(即在您的应用程序达到生产状态并且您对实际需求及其执行方式有了更好的了解之后),您可以例如引入视图以一种对任何 reporting/querying 更有用的方式聚合数据你要经常表演。
在最极端的情况下,您甚至可以重构架构并将所有内容从 Datetime 迁移到两个不同的字段,但我怀疑这是否必要。