表单示例让我说我有两个表
users posts
[ id - username ] [ id - username - content ]
[ 1 - AXBAXBA ] [ 1 - AXBAXBA - contentA ]
[ 2 - AXAAXAA ] [ 2 - AXAAXAA - contentB ]
[ 3 - AXDAXDA ] [ 3 - AXDAXDA - contentC ]
这种设计更好吗?因为我将快速使用一个查询
SELECT username, content FROM posts
或者更适合使用此表设计加入
users posts
[ id - username ] [ id - userid - content ]
[ 1 - AXBAXBA ] [ 1 - 1 - contentA ]
[ 2 - AXAAXAA ] [ 2 - 2 - contentB ]
[ 3 - AXDAXDA ] [ 3 - 3 - contentC ]
然后继续加入查询
SELECT a.username, b.content FROM users a LEFT JOIN posts b ON a.id = b.userid
哪种设计更好,为什么?
答案 0 :(得分:5)
如果[users]和[posts]之间只有1对1的关系,那么只需使用一个表(id,username,content)。如果单个用户可以拥有多个内容,那么后一种设计就是可行的方法。这样,您可以将用户信息存储在一个地方,如果您需要更改用户#1的用户名,则只需更新[用户]。
答案 1 :(得分:2)
后一个建议更好。字符串比整数占用更多的存储空间。如果你可以将表与整数而不是字符串联系起来,那就去做吧。
只是一个警告,列有名为' id'在这两个表中操作时可能会导致一些混乱。我认为最好将这个名字命名为“#id;'帖子表中的列' postid'只是我的两分钱。
答案 2 :(得分:2)
加入总是使您的查询更快,而不是加入查询以获得结果。如果您的查询返回小数据,那么如果结果很大,则进行查询连接。转到连接。