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

Php 数据库设计:设计论坛表的最佳实践,php,sql,mysql,database-design,Php,Sql,Mysql,Database Design,我想知道在设计论坛时是否有任何实践。我想设计几个论坛。是的,至少有两种不同类型的论坛。一个是针对有选择的会员,另一个是针对任何公共会员开放的 在论坛中,成员可以发起一个线程,然后其他成员可以响应它 所以我对这类论坛的结构有一个粗略的想法 我将论坛表命名为“字符串”表。这是我能想到的结构 str_id for the auto increment id str_tilte for title of the thread str_content for content/ t

我想知道在设计论坛时是否有任何实践。我想设计几个论坛。是的,至少有两种不同类型的论坛。一个是针对有选择的会员,另一个是针对任何公共会员开放的

在论坛中,成员可以发起一个线程,然后其他成员可以响应它

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

我将论坛表命名为“字符串”表。这是我能想到的结构

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例如,如果数据注入是一个op线程,那么父id就是它自己,如果注入是对op的响应,那么它的父id就是op的stru id

*2此列用于存储当前数据注入的类别id。如果注入为选择性论坛,则为1;如果注入为公共论坛,则为2

不确定我是否在最佳轨道上,但如果你有更好的想法,请告诉我

谢谢

编辑:

感谢您对使用phpbb的回复和建议

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

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

我的想法

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

  • 我建议使用parent_id
    null
    如果它是顶级线程,则更有意义


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

    我喜欢在打印白板或纸上绘制第一个图表,然后使用图表工具进行逻辑设计


    我认为还有一些空间可以建立一个“更好”的论坛,祝你好运。

    问候。

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

    我强烈建议您在您的机器上安装其他开源数据库驱动论坛的本地安装,以便您对其他开发人员在开发此类论坛应用程序时所做的工作有一个清晰的想法和基础,不仅要查看数据库表,还要查看论坛的代码、组织和设计。我认为,打开你的眼睛,看看你自己的论坛应用程序的可能性是非常有用的

    数据库驱动论坛的几个示例:

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

    你应该考虑到某一天你的论坛应用程序可能会变得流行起来,你可能希望把它像以前提到的一样公开,或者只是想添加一些新的特性。p> 在这种情况下,我建议您很好地规划代码和数据库体系结构,提前规划将来的升级

    你也应该认真对待他的建议,从

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

    这是我见过的最好的答案


    祝你好运。

    你不使用PHPBB等现有免费论坛有什么原因吗?我会去掉str_uuu前缀。你要写的查询越多,这很快就会让人恼火。@lauthiamkok:我自己从来没有建立过自定义论坛,但我认为最好在本地建立一个phpBB论坛,然后看看它的表是如何建立的。我要设计的这些论坛是一个有表列表的网站的一部分。所以我希望这个论坛的桌子尽可能简单,可以和其他桌子坐在一起。我不知道PHPBB中的表格有多复杂-它可能有很多表格,就像其他免费论坛一样,这不是我最喜欢将它与我的网站集成的东西。谢谢。@lauthiamkok:当我的意思是“看看phpBB表是如何构建的”时,我从来没有打算只是复制它们,而是把它们作为一个很好的参考。