关于帖子回复和回复的用户数据库设计问题?
最近在研究数据库设计和优化方面的问题,所以喜欢问一些数据库方面的知识,今天也遇到一个问题,来请教。
对于每一个帖子topic,关系到回复reply和回复的用户user,按照hibernate的设计,在回复表这个对应类里关联到一个user对象,user对象对应到回复表里就是userid。假如某个帖子有十个用户回复,在我点击此贴进入时,后台会显示12条sql语句,第一条是拿到此贴,第二条是拿到此贴的所以回复,其余10都是select user。。,也就是说每条回复都要去数据库拿到对应的回复的用户,如果某页要显示30条回复,那么要执行30次select user,我觉得这么做肯定不好。
我想的解决办法是:在回复表里不是只存userid,把回复中要显示的用户信息都存在回复表里,比如名称,头像等等,但是这样做会产生数据冗余。。该怎么设计才好??
------解决方案--------------------冗余之后,如果用户更新信息,那么你还要用触发器去更新冗余信息,这个是没有必要的。