【正确答案】1)在论坛系统中,最重要的对象就是用户与帖子。显然,可以给用户单独设计一张表,由于帖子对象比较特殊,每个帖子都会有回复帖,而回复帖也会有回复帖,如此递归。由于论坛中会有大量的帖子,因此,对帖子表的设计是非常重要的。为了提高查询效率,在设计的时候可以把主题帖与回复帖分开为两张表;对于回复帖的回复帖,可以考虑在回复帖的表中增加一个额外的字段(回复帖子的id)。
2)E-R图设计:通过以上分析可知,这个简单的论坛系统主要有3个实体:用户t user、主题帖t_mainPost及回复帖t_replayPost。它们之间有如下关系:
①一个用户可以发0个或多个主题帖,因此,t_user与t_mainPost的关系为一对多的关系。
②一个用户可以有0个或多个回复帖,因此,t_user与t_replayPost的关系为一对多的关系。
③一个主题帖可以有0个或多个回复帖,因此,t_mainPost与t_replayPost的关系也是一对多的关系。
通过以上分析,下面给出数据库设计的E-R图,如图所示。
