0

我决定从头开始建立自己的社交网络,因为我意识到这将是一个有趣的练习,而且我不想花很多时间学习定制像 Drupal Commons 这样的开箱即用的解决方案。到目前为止,我在基本登录/注销功能、创建新用户、上传头像等方面做得很好。我还有一个 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以确保他们正确地了解彼此。我唯一需要一个新线程 ID 的情况是,如果有人,嗯,开始一个新线程。回复将使用现有的 threadID 并获得唯一的 postID。

如果有人能阐明这笔交易的基本逻辑,我将不胜感激。我过去在关系数据库方面工作不多,所以我认为这是一个学习有用知识的机会。

4

1 回答 1

1

我会这样做的方法是将threadID更改为parentID,然后如果它是线程中的孩子则引用另一个postID,或者当它是正常的父帖子时引用-1(或0)。通过这种方式,您可以轻松地串接任何帖子,甚至不需要 Threads 表。让我知道这对你是否有意义:)

于 2013-08-14T17:45:39.710 回答