日期:2014-05-17  浏览次数:20688 次

在数据库 合理性和可能影响到效率的问题上优先选择哪一个?大神指教!!!!!!
在数据库 合理性和可能影响到效率的问题上优先选择哪一个?为什么?

比如:微博中有个被关注数量的统计。
1.在个人资料表中 做个被关注数的保留字段
2.实时计算(就是统计SQL统计)

1.不够合理 因为有个关注表可以统计出来
2.如果人数多的话 关注表的数据量会很大 从中筛选某个讲师被关注数量的开销远比做保留字段大  

这种情况下 怎么设计数据表?说说自己的看法

------解决方案--------------------
比如:微博中有个被关注数量的统计。
1.在个人资料表中 做个被关注数的保留字段
这个表加一个字段(BrowseCount),客户每浏览一次,这个值加1

2.实时计算(就是统计SQL统计)
不知道是否有特别要求?是不是每留言一次才算是关注?如果这样就要从子表统计出来
这样要建父子表关系,建外键关联
------解决方案--------------------
楼主别太纠结……

这问题还不涉及合理性和效率的冲突

个人认为2个表好一些,做好关联就是了。
------解决方案--------------------
引用:
Quote: 引用:

比如:微博中有个被关注数量的统计。
1.在个人资料表中 做个被关注数的保留字段
这个表加一个字段(BrowseCount),客户每浏览一次,这个值加1

2.实时计算(就是统计SQL统计)
不知道是否有特别要求?是不是每留言一次才算是关注?如果这样就要从子表统计出来
这样要建父子表关系,建外键关联

不是 就是有个关注的按钮  点了以后就可以适时收听关注人发表的文章啥的  就像微博一样

但是有个关注表 记录了谁关注了谁  这样就可以统计一个人被关注的次数 
按照合理性的角度考虑没有必要再个人资料表做这个保留字段

但是如果关注表数据量很大 每次实时统计开销过大 做个保留字段可以省去这方面的问题

这种情况下做何种选择?要求效率 还是 要求数据库的合理性?


既然数据量很大,如果是我,我会保留一个字段。只要你控制好完全没问题。
即使有问题,你可以通过统计语句去更新

------解决方案--------------------
数据库合理性是面向研发人员的,而效率是面向客户的,是客户时常感知的,因此你觉得哪个更重要。当然是效率更重要,如果半天都刷不出我的关注人,我还会用这个产品吗,肯定不会。因此效率第一,而数据库合理性也是我们需要重视的,否则如果很不合理,就会影响产品的稳定性。结论是在保证产品稳定性的前提下,优先考虑效率。
------解决方案--------------------
完全同意#4楼的方法。
#1.保留字段,效率优先
#2.在系统不忙时,可进行一下校正
------解决方案--------------------
如果是我,会用第一种方法,只要被关注一次,就自动加1。
------解决方案--------------------
我是来学习的,打个酱油
赚点积分