具有1-1关系的表(信息和统计)

时间:2013-09-04 18:55:05

标签: sql sql-server

我有一个包含视频/用户/消息表格的数据库。

视频表包含视频信息

  • ID
  • 标题
  • 描述
  • 所有者
  • ...

一堆统计信息(现场更新)

  • 视图
  • 正面投票
  • 否定投票
  • ...

还有一堆计算值(每天或每周更新一次)

  • calculated_votes
  • is_popular
  • 声誉
  • ...

我最终得到了非常庞大的牌桌。是不是会把它分开? (表:视频,videos_statistic)
这最终将成为1-1关系。

我从未成为1-1关系的粉丝,是否有任何“规则”说明何时可以建立这种关系?

2 个答案:

答案 0 :(得分:2)

好吧,我会将统计数据保存在一个单独的表中(基于1到多个日期,所以不是1比1)

因此统计表可以有列

  • VideoID的
  • StatDate
  • 浏览
  • PositiveVotes

这样您就可以保留值的历史记录,可以在以后的报告中使用,显示平均值,趋势等。

答案 1 :(得分:1)

我还会将统计信息保存在单独的表中,原因有两个(即使是1-1):

1:与更宽的表相比,从资源的角度来看,更新瘦桌会更容易。 2:根据构建的报告类型,检索也会更快。如果数据用于BI报告。

考虑您问题中提到的属性:

ID 标题 描述 老板

这些属性在系统中很少改变一次。 Statistiques表定期更新的位置。因此,正如Astander提到的那样,如果你想在日期级别维持不同粒度的统计数据,那么每天不需要再次存储不变的属性。

希望这有帮助。