在对Jive 进行改进时产生的新问题

05-10-13 mybillliu
在Jive中,具体的所有主题和贴子内容都储存在JiveMessage表中

JiveThread中没有存储更具体的信息,只不过简单的各个贴之间的父子关系等等。

在实际应用中会产生一个问题,基本上所有的操作都是基于JiveMessage表的,大量用户存在时,会对JiveMessage表产生过重负担。

因此,我在改进Jive时将主题表、贴子表完全分开。

JiveThread表完全存储主题信息,JiveMessage表完全存储具体贴子信息,这样就分流了操作负担,用户在打开主题显示页面时,只是操作JiveThread表,真正打开贴子浏览或者发贴子时才操作JiveMessage表,从数据方面解决部分JiveMessage表压力过重问题。

这样的数据库设计,在基于程序编写时我遇到过问题:原来所有的具体信息都在JiveMessage表时,进行分页等等的迭代时只是在JiveMessage表取出messageID就完成迭代,很容易。但在主题表和贴子表分离后,进行迭代时,主题的ID是从JiveThread表中取出,贴子ID又是从JiveMessage表取出,这就在实际编写中产生一些问题,要区分ID号,并决定从哪一表中取出具体数据,面对这个问题,有什么好的解决方法呢?

banq
2005-10-14 14:05
>会对JiveMessage表产生过重负担

不会,缓存已经起了缓冲和提升性能作用,数据表的物理位置在J2EE中已经不重要了,在数据表之前还可以使用Hiberante CMP等映射进行转换。

所以 这样数据库设计就会产生你现在的问题,非常难搞。带来这样的问题还是我们没有遵循OO设计概念,这条路我以前走过,现在放弃了,现在使用Jdon框架做注意这个问题,数据库结构都没动。

mybillliu
2005-10-18 09:43
谢谢Banq的解答!

按照两表分开的思想,在程序设计上的确会遇到很多新的问题,还有生成论坛结构树时,更麻烦!

这几天正在对这个问题进行更深层次的实际尝试!

谢谢!

猜你喜欢