1

我正在用 php 设计一个博客站点,用户可以在其中手动将相关的帖子添加到帖子中。

我想对所有相关的帖子使用自动增量整数。

这是表格:

Blog:
-id
-related ( it's 0 if there aren't related posts or it contain an autoincremet integer that it is the same for all posts related )
-id_user
-title
-body
-date

如果可能的话,我不喜欢使用“相关表”以避免复杂的查询。

因此,在这种情况下,我需要一种获取自动递增整数的方法,或者您可以建议我其他解决方案:)

4

2 回答 2

3

为什么没有第二张桌子?它可能是最强大的解决方案,并且根本不会使您的查询复杂化。

您应该有第二个表,related-posts,有两个字段:originalrelated

两者都不是唯一的,因此以下是可能的(假设 1、2、3、4 是帖子 ID)

o | r
--+--
1 | 2
1 | 3
2 | 3
2 | 4
4 | 1

当您需要查找与帖子 1 相关的帖子时(例如),您查询

SELECT `related` FROM `related-posts` WHERE `original` = 1;

这将为您提供所有相关的帖子 ID。


这种关系称为多对多关系,一个帖子可以关联多个相关帖子,一个帖子可以关联多个原创帖子。

于 2013-05-10T08:15:09.367 回答
0

你可以设置related为NULL,然后你可以检查它是否为NULL——那么就没有相关的帖子了。

要选择所有相关帖子:

SELECT * FROM Blog where related=:blog_id
于 2013-05-10T08:16:21.637 回答