使用MySQL和PHP启动帖子帖子的逻辑?

时间:2013-08-14 17:22:44

标签: php mysql

我决定从头开始建立自己的社交网络,因为我意识到这将是一个有趣的练习,我不想花很多时间学习定制像Drupal这样开箱即用的解决方案下议院。到目前为止,我已经完成了基本的登录/注销功能,创建新用户,上传头像等等。我还有一个MySQL数据库表,用于保存用户的帖子。

posts表上运行基本查询我可以轻松检索帖子,其ID和创建它的用户(userID是users表中的外键)。但是,我决定要使用threads实现threadID表。这样,帖子不仅可以根据日期或postID进行排序,还可以按主题排序。

但是,我不确定发布新主题的逻辑。我的数据库包含以下表格:用户,帖子,主题。在数据库中,它们的结构如下(仅显示相关字段):

Users         Posts         Threads
-----         -----         -------
userID (pk)   postID (pk)   threadID (pk)
              userID (fk)  
              threadID (fk)

上面的格式在预览中看起来没问题,如果我发布

后我感到非常不满,我很抱歉

用户创建与帖子创建是分开的,因此我在创建新帖子时已创建并可用userID。然后帖子自动生成自己的postID。妨碍我前进的是,我不太确定如何在同一个交易中创建新的threadID postID,以确保他们正确了解每个其他。我需要一个新的threadID的唯一一次是,如果有人,那么,开始一个新线程。回复将使用现有的threadID并获得唯一的postID。

如果有人能够阐明这笔交易的基本逻辑,我会非常感激。我过去对关系数据库的工作并不多,所以我认为这是学习有用的东西的机会。

1 个答案:

答案 0 :(得分:1)

我这样做的方法是将threadID更改为parentID,如果它是线程中的子节点,则引用另一个postID,或者当它是普通父节点时引用-1(或0)。这样您就可以轻松地对任何帖子进行处理,甚至不需要Threads表。如果这对您有意义,请告诉我:))