考虑一个拥有数十亿用户的简单网站,所有用户都使用用户名和密码注册。他们可以在这个网站上发布消息。您可以查找用户,然后查看该用户的所有帖子。
我会这样设计这个结构:
user (id, name, password)
1 arne <pass>
2 jeff <pass>
...
99999999999999999 erik <pass>
post (id, message)
1 hello
2 test
3 hey
...
post_user (puid, postid, userid)
1 1 1
2 2 1
3 3 2
然后我可以通过查找arne的 id (1) 来简单地显示所有帖子,将其与 post_user 表和 posts 表连接并获取他的所有帖子。
现在,当我为数百万用户描绘数百万条消息时,我想象post和post_user表变得非常庞大。所以我想知道以下模型是否可以在非常大的环境中提供有用的信息。假设您要为每个用户创建一个唯一的帖子表:
user (id, name, password)
1 arne <pass>
2 jeff <pass>
...
99999999999999999 erik <pass>
post1 (id, message)
1 hello
2 test
post2 (id, message)
3 hey
然后,您可以通过查找 id 并从 ("post" + userid) 中进行选择来获取一个用户的所有帖子,这意味着您将有一个小得多的表格可供查看。
这样的工作能证明是有益的吗?我能想到的一个问题是,您将拥有大约一百万个 post1、post2、...、postx 表,每个表都占用存储空间并更改它们将是一场灾难。