2010-08-15 63 views
0

与Facebook一样,每个人都在墙上留言。所有消息都只存储在一个表中吗?加载页面时它只会显示属于用户ID的消息?如果是这样的话,那么这张桌子上会有很多行。一个表中的行是否有限制?关于社交网站数据库的问题

或者每个用户有一张表只存储自己的消息?

回答

1

或者每个用户都有一个表只存储 自己的邮件?

这不是一个好主意,你可能会得到很多表格。很多行比较好。

我会简单地使用一个“表”,它将message_iduser_id配对并带有适当的索引,以快速查找归因于特定用户的消息。

表中有一行 是否有限制?从MySQL 5.1 Features

报价:

支持大型数据库。我们使用 MySQL服务器和 包含5000万条记录的数据库。我们也知道 的用户谁使用MySQL服务器 有200,000个表和大约 5,000,000,000行。

+1

很多表和动态SQL,因为SQL不允许动态的FROM或JOIN子句... – 2010-08-15 21:30:18

2

据我所知,Facebook的墙根本不存储在MySQL中。他们使用卡桑德拉 - 一个Apache的NoSQL数据库,我认为,并成为NoSQL的它采用完全不同的理念比 相对 关系数据库(如MySQL)

http://en.wikipedia.org/wiki/Apache_Cassandra

他们使用MySQL的其他数据虽然。

也看到类似的问题(回答)在这里:

Facebook wall's database structure

+0

首先我听说过卡桑德拉,很好的回答:) +1在新的SO日的黎明。 – 2010-08-15 21:44:53

+1

你的意思是“关系”而不是“相对”:P – bakkal 2010-08-15 21:46:15

+0

我明显这么做;) – Mchl 2010-08-16 07:26:18