| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1446 人关注过本帖
标题:论坛的主题与回复在数据库中存储的逻辑结构
取消只看楼主 加入收藏
yangglemu
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:273
专家分:521
注 册:2006-9-15
结帖率:100%
收藏
 问题点数:0 回复次数:1 
论坛的主题与回复在数据库中存储的逻辑结构

本人正在学习 c# .net + MySql 的相关内容。现在碰到一个问题请大侠们赐教:

建一个简单的留言本,只要把每一个新发表的留言以及发表者的相关信息存入数据库即可,
每发一条新的留言,就是在数据库中插入一条新的记录。

现在的问题是:
如果要建一个论坛的话,那么每一个主题势必有N条回复,主题与回复如何对应起来?在数据库中如何安排?
另外,一个用户ID可能有N个主题,那么这N个主题如何与一个唯一的ID对应起来?
要解决以上的问题,是不是要建多个相关联的表?具体每个表中要用到哪些字段?

本人所买的教材以及在网上大量搜索的结果,都没有这方面的介绍,水平确实低下,请大侠们抽空讲讲有关这个的结构


搜索更多相关主题的帖子: 数据库 逻辑 结构 主题 
2006-09-15 12:04
yangglemu
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:273
专家分:521
注 册:2006-9-15
收藏
得分:0 
谢谢两位,我还是不明白~

我想如果用户的基本信息建一个表,字段名包括:ID,name,sex,email,qq等字段

那么:
0、用户登录时是与用户基本信息表的数据进行核对,如果相同才有发表主题及留言等权限。
1、以用户发表的主题建一个表,包括发表时间,发表标题(用来搜索),发表内容,发表作者ID(与用户ID对应)
每发一个留言,就插入一条新的记录,这样只要搜索发表作者ID,就可以找到该ID发表的所有文章。但此表的关键字段(即唯一的不能有重复值的字段)该如何设置合理?好象用上面的不管哪个字段都有可能发生重复的字段值。或者干脆不设置关键字段而允许重复?能不能以自动编号的方式建一个关键字段用来区别每一个主题(也就是每一条记录)?

2、用户的回复如何组织起来以跟主题表和用户基本情况表对应起来?如果建一个新的数据库,每发表一个回复就插入一条新的记录,那么是不是要设置一个字段用来表明所回复的是哪一个主题?如果以上一条中的方式以自动编号的方式为每一个发表主题建立了唯一的区别字段值,在此表中再设置一个这样的编号字段,凡是有此编号的即为上一条所述主题表中的唯一主题的回复,再在回复表中建一个回复时间字段,并让其作为排列留言的先后依据,是这样吗?

这样看来,就要建三个表:

A表用来记录用户基本信息。ID是关键字段,每个记录的ID不能有重复。

B表用来记录主题的信息,每一个主题就是一条记录,并且每个记录有一个唯一的编号(从1开始的自然连续整数)。
此主题必有一个ID字段以跟A表中的ID对应(相等)。

C表用来记录回复。每一条回复就是一个记录,每个记录有一个编号字段,以对应B表中的编号,此表无关键字段(这样不同记录的值可以
相同)。

页面显示描述:
某用户发表了一个标题为“编程论坛我爱你”的主题记录在B表中并显示在论坛主题列表中。
当点击该主题时,从B表中以编号(唯一的)找到该主题显示在页面上。
然后从C表中以 select * from C where 编号="8888" 的方式找到所有该主题的回复,并以发表的时间先后顺序显示在页面上。

查找某ID发表的所有主题:
select * from B where id="ILoveYou"


研究了N天,勉强思索到这样一个逻辑关系来描述论坛的文章在数据库中的存储方式,但感觉不行,而此方面的资料我这个网虫目前尚未看到任何教程和讨论。包括书本上的和互联网上的。

上面的朋友说可以用一个表,我感觉不行,除非在long text 类型的文本内容的字段中设置一个特别的分隔符来区分不同的留言和不同的主题,但这样可操作性我想都没想,感觉太麻烦了。而且long text也是有容量限制的。

希望各位把你们工作和学习过程中的这种好方法讲一下,最好描述一下表的关系及设置某些关键字段的理由

试着挣个威望!
2006-09-15 19:37
快速回复:论坛的主题与回复在数据库中存储的逻辑结构
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015765 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved