0

考虑一个拥有数十亿用户的简单网站,所有用户都使用用户名和密码注册。他们可以在这个网站上发布消息。您可以查找用户,然后查看该用户的所有帖子。

我会这样设计这个结构:

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 表连接并获取他的所有帖子。

现在,当我为数百万用户描绘数百万条消息时,我想象postpost_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 表,每个表都占用存储空间并更改它们将是一场灾难。

4

1 回答 1

0

我不确定这将如何运作。但如果您说您有指定的帖子长度,是的,您可以。

你可以有两张桌子:

  1. 登录 -- id、用户名、密码

  2. 消息——id、post_data、date_time_stamp。

所以当你查询时你可以做这样的事情

select * from messages where id==//some id you generate

这将列出一个人发布的所有帖子。

或者

如果你想要一个人在指定日期的帖子..

(考虑到您的 UI 中也有相同类型的 date_time_stamp)

您可以查询 select * from messages where id=="" and date=="";

同样的时间你也可以试试...

干杯

于 2013-09-19T08:01:08.553 回答