MySQL 使用 JOIN 或直接存储

MySQL use JOIN or store directly

我有 tables usersposts。 Table usersuser_idusername 列,table postspost_iduser_id 列。

当我获取帖子时我也想获取用户名,所以在 tables usersposts 之间使用 JOIN 获取用户名或存储更好用户名也在 table posts?

JOIN 如何影响性能,假设您在 postsusers table 中有几百万行?

这就是我们拥有 RDMS 的原因,几百万行对 MySQL 来说不是什么大问题。如果您考虑将用户名保存在 post 数据中,您应该考虑 NoSQL 数据库。

公认的做法是使用 JOIN 语句并且帖子中没有用户名 table。这样做会违反正常形式并导致冗余数据。另外-如果用户名更改会怎样?然后你有两个不再匹配的 tables(用户,帖子),因为会有 user_id 与用户名不匹配的记录。只是一些需要考虑的事情。