我正在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
我不想使用"相关表格"如果可能的话,避免复杂的查询。
所以我需要一种方法来获得这种情况下的自动增量整数,或者你可以建议我其他解决方案:)
答案 0 :(得分:3)
为什么没有第二张桌子?它可能是最强大的解决方案,它根本不会使您的查询完全符合。
您应该有第二个表格related-posts
,其中有两个字段:original
和related
。
两者都不是唯一的,因此以下是可能的(假设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。
这种关系称为多对多关系,一个帖子可以有多个相关帖子,一个帖子可以与许多原始帖子相关。
答案 1 :(得分:0)
您可以将related
设置为NULL,之后您可以检查它是否为NULL - 然后没有相关的帖子。
选择所有相关帖子:
SELECT * FROM Blog where related=:blog_id