我决定从头开始建立自己的社交网络,因为我意识到这将是一个有趣的练习,而且我不想花很多时间学习定制像 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。
如果有人能阐明这笔交易的基本逻辑,我将不胜感激。我过去在关系数据库方面工作不多,所以我认为这是一个学习有用知识的机会。