问题描述
如商品表ProductIDName然后现在要有销售量评论旦点击量打分人数平均分这些字段要怎么来做呢点击旦可以在第次浏览的时候+1打分的认数和平均分也可以+1和取平均为ProductIDNameClickRateGradeCountGrade但销售量和评论量就不太好设计了本来想销售量和评论量这两个字段不放在Product表里面,而是要的时候再去关联销售表和评论表去查询出他们有多少但是如果对商品进行列表的时候,每次要关联查询这么多表的数据肯定会对速度有很大的影响然后现在我就想把这两个字段添加到商品表中ProductIDNameClickRateGradeCountGradeSaleCountCritiqueCount但这样又不能保证他这两个字段的数据的真实性那这时大家会怎么办呢?以下是我的解决方法在SaleOrder表中和Critique表中添加触发器,以下对SaleOrder举例添加InsertUpdateDelete当添加的时候给Product+相应订单商品数量Delete的时候-相应订单商品数量;但是问题又来了,这时因为订单作废时也要减去所以我就改为InsertUpdate时触发器去查询这个表中所这个商品的数量再去更新Product中的数量Delete的时候也是用查询的方法再去更新Product中的数量大家这个问题会是怎么做的呢谢谢
解决方案
解决方案二:
销售量应该是对销售表的统计,与商品关联ID评论量应该在评论表中点击量可以是商品的一个属性,在商品表中,如果有特殊需要,可以单独做。打分人数应该在打分表记录,关联商品ID,平均分依然在此表获得。--------------------------------------------------------加入冗余:例如,每次打分后立即获得平均分,增加数据库统计速度--------------------------------------------------------增加操作复杂度,换取统计速度例如,每次销售之后,对商品表的销售量进行增加操作---------------------------------------------------------如果想获得好的延展性,那么应该符合第三范式(在数据量不是很大,或者是数据量大,但不是用分布式情况下)
解决方案三:
帮你顶!!!设计数据库!!用UML建模工具!!
解决方案四:
就是说销售量如果不放在Prodcut表中也放一个字段的话查询起来不是很快但如果放在Product表中又怕不准确
解决方案五:
引用1楼shoushii的回复:
销售量应该是对销售表的统计,与商品关联ID评论量应该在评论表中点击量可以是商品的一个属性,在商品表中,如果有特殊需要,可以单独做。打分人数应该在打分表记录,关联商品ID,平均分依然在此表获得。--------------------------------------------------------加入冗余:例如,每次打分后立即获得平均分,增加数据库统计速度--------------------------------------------------------增加操作复杂度,换取统计速度例如,每次销售之后,对商品表的销售量进行增加操作---------------------------------------------------------如果想获得好的延展性,那么应该符合第三范式(在数据量不是很大,或者是数据量大,但不是用分布式情况下)
个人觉的可以参考一楼的方法。
解决方案六:
up
解决方案七:
解决方案八:
但是如果对商品进行列表的时候,每次要关联查询这么多表的数据肯定会对速度有很大的影响==把关联的内容放到视图里,每次查询视图的内容
解决方案九:
up
解决方案十:
up
解决方案十一:
还是单独建表为好
解决方案十二:
解决方案十三:
看来还是分开表好然后再写一个视图来统计他的数据信息-----------------------------是否支持这种写法呢