gpt4 book ai didi

php - 使用 MySQL 和 PHP 启动帖子线程的逻辑?

转载 作者:行者123 更新时间:2023-11-29 13:39:44 25 4
gpt4 key购买 nike

我决定从头开始构建自己的社交网络,因为我意识到这将是一个有趣的练习,而且我不想花费大量时间学习定制像 Drupal 这样的开箱即用的解决方案公共(public)资源。到目前为止,我在基本登录/注销功能、创建新用户、上传头像等方面做得很好。我还有一个 MySQL 数据库表,用于保存用户的帖子。

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

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

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

上面的格式在预览中看起来不错,如果我发布后它完全不稳定,我深表歉意

用户创建与帖子创建是分开的,因此我已经创建了一个userID,并且在我发布新帖子时可用。然后帖子会自动生成自己的 postID。阻止我前进的是,我不太确定如何在同一事务中创建新的 threadID postID 以确保他们非常了解彼此。我唯一需要新的 threadID 的情况是有人正在启动一个新线程。回复将使用现有的 threadID 并获得唯一的 postID。

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

最佳答案

我的方法是将 threadID 更改为parentID,然后如果它是线程中的子帖子,则引用另一个 postID;如果它是普通的父帖子,则引用 -1(或 0)。这样您就可以轻松地对任何帖子进行线程化,甚至不需要线程表。让我知道这对您是否有意义:)

关于php - 使用 MySQL 和 PHP 启动帖子线程的逻辑?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18238262/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com