我想为个人资料创建发布系统。我创建了一个数据库,用于存储每个用户都有一个表的所有用户帖子。
我创建了另一个用于存储每个帖子评论的数据库。我的逻辑是在评论数据库中创建每个表并将每个评论存储在其中。
是否存在链接帖子和评论的逻辑。我想使用mysql最后一个插入id,但它会返回最后一个id,这会产生错误,因为其中一个帖子没有表格。
还有其他办法吗?
答案 0 :(得分:0)
另一种方法是为帖子设置一个表格,并使用userid
列标识表格中的用户帖子。要查找特定用户的所有帖子,只需按用户ID查询即可。通过这样做,您可以管理单个表,并且可以轻松地进行查找。如果为每个用户创建单独的表,则必须创建其他逻辑以首先确定要使用的表。如果删除了用户,则删除表,而不是简单地从公用表中删除某些行。
相同的逻辑适用于评论表 - 添加postid',
commentid ,
userid`的列。同样,单个表包含所有注释。要查找特定帖子的评论,您可以进行简单的查询,例如
select comment_text
from comments_table
where postid = ?
使用MySQL的整个目的是利用实体之间的关系,即user
拥有posts
,post
链接到comments
。
如果您不想使用这样的关系模式,请查看NoSQL DB。
答案 1 :(得分:0)
你有几个选择:
在posts表中添加user_id列,在comment表中添加post_id和user_id列。然后,您可以使用一对多关系设置外键。
仅使用具有(除现有之外)user_id的单个表,并键入column。类型将定义评论/帖子/等。这可以使用中间表定义为映射到CONST,字符串或您认为合适的任何其他方式的数字(中间最佳选项imho)。
改变上述示例并使用2个中间表将用户匹配帖子和评论到帖子(可能还有用户评论)。