动态表基于另一个表插入记录mysql

时间:2014-09-26 14:38:15

标签: php mysql

我想为个人资料创建发布系统。我创建了一个数据库,用于存储每个用户都有一个表的所有用户帖子。

我创建了另一个用于存储每个帖子评论的数据库。我的逻辑是在评论数据库中创建每个表并将每个评论存储在其中。

是否存在链接帖子和评论的逻辑。我想使用mysql最后一个插入id,但它会返回最后一个id,这会产生错误,因为其中一个帖子没有表格。

还有其他办法吗?

2 个答案:

答案 0 :(得分:0)

另一种方法是为帖子设置一个表格,并使用userid列标识表格中的用户帖子。要查找特定用户的所有帖子,只需按用户ID查询即可。通过这样做,您可以管理单个表,并且可以轻松地进行查找。如果为每个用户创建单独的表,则必须创建其他逻辑以首先确定要使用的表。如果删除了用户,则删除表,而不是简单地从公用表中删除某些行。

相同的逻辑适用于评论表 - 添加postid', commentid , userid`的列。同样,单个表包含所有注释。要查找特定帖子的评论,您可以进行简单的查询,例如

  select comment_text
  from   comments_table
  where  postid = ?

使用MySQL的整个目的是利用实体之间的关系,即user拥有postspost链接到comments

如果您不想使用这样的关系模式,请查看NoSQL DB。

答案 1 :(得分:0)

你有几个选择:

  • 在posts表中添加user_id列,在comment表中添加post_id和user_id列。然后,您可以使用一对多关系设置外键。

  • 仅使用具有(除现有之外)user_id的单个表,并键入column。类型将定义评论/帖子/等。这可以使用中间表定义为映射到CONST,字符串或您认为合适的任何其他方式的数字(中间最佳选项imho)。

  • 改变上述示例并使用2个中间表将用户匹配帖子和评论到帖子(可能还有用户评论)。