数据库设计:设计论坛表的最佳实践

时间:2010-11-14 21:07:56

标签: php sql mysql database-design

我想知道在设计论坛时是否有任何练习。我想设计一些论坛。是的,至少有两种不同类型的论坛。一个是选择性成员,另一个是对任何公共成员开放。

在论坛中,会员可以发起一个主题,然后其他成员就可以回复它。

所以我对这类论坛的结构有这个粗略的想法。

我将论坛表命名为'strings'表。这是我能想到的结构,

str_id        for the auto increment id
str_tilte     for title of the thread
str_content   for content/ text of the thread
str_follow    for you to choose whether you want to follow this thread or not
str_approved  for the admin to approve or reject the thread
parent_id*1     
mem_id        member id who initiates the thread or who responds to the op
cat_id*2
str_created   
str_updated

* 1例如。如果数据注入是一个操作线程,则父ID本身,如果注入是对op的响应,则其父ID是操作的str_id。

* 2此列用于存储当前数据注入的类别ID。如果注射是一个选择性论坛,那么它是1,如果注射是公共论坛那么它是2。

不确定我是否处于最佳状态,但如果您有任何更好的想法,请告诉我。

感谢。

编辑:

感谢您使用phpbb的一些回复和建议。

只是看看并下载了phpbb。 101%肯定我不会去追求它。它是一个完整的程序,如Wordpress或任何其他PHP框架(如Zend)。我有一个独立的框架运行这个网站,所以我不想运行另一个程序/框架来搞乱网站的后端结构等。

如果我的网站只是一个纯粹的论坛网站,那么也许我会考虑phpbb。但论坛只是我目前项目中整体网站的一个子功能。

但是,谢谢。

:)

3 个答案:

答案 0 :(得分:9)

不要从表开始,从基础实体,论坛,线程,回复,成员,关键字,类别等的概念ER图开始,并首先表达关系。然后进入逻辑设计模式并定义表格需要实现功能。正如所建议的那样,可以看到phpBB表的组织方式。

我喜欢在印刷白板或纸上做第一张图,然后转到图表工具进行逻辑设计。

我认为仍然有一个“更好”论坛的空间,祝你好运。

答案 1 :(得分:5)

<强>问候语。

正如我之前在您的问题评论中所建议的那样。

我强烈建议您在机器中设置其他开源数据库驱动论坛的本地安装,以便您在开发此类论坛应用程序时有一个强大的想法和其他开发人员所做的基础,而不仅仅是查看数据库表以及论坛的代码,组织和设计。我认为这证明了自己非常有用的睁开眼睛看你自己的论坛应用程序的可能性

数据库驱动论坛的一些示例:

我通常说最好的学习方法是试错,但我也要指出。即使是这个论坛应用程序,您的创建,它只是为您的网站小型和私人使用。

您应该考虑有一天您的论坛应用程序可能会变得流行,您可能希望像之前提到的那样将其公开,或者您只是想添加一些新功能。

在这种情况下,我建议您很好地规划您的代码和数据库架构,提前规划未来的升级。

另外,您应该在MikeAinOz并从

开始认真对待answer建议
  

基地的概念ER图   实体,论坛,线程,   回复,成员,关键字,类别   等并表达关系   然后,进入逻辑设计   模式并定义所需的表   实现功能

这是我见过的这类问题的最佳答案。

问候&amp;祝你好运。

答案 2 :(得分:1)

我的想法......

  1. str_follow不应该在此表中。它应该有自己的表,将成员链接到订阅的线程。

  2. 我建议让parent_id null如果它是顶级线程,那就更有意义了。

相关问题