Php 类似Facebook的Mysql结构

Php 类似Facebook的Mysql结构,php,mysql,database,facebook,Php,Mysql,Database,Facebook,我正在考虑建立一个facebook风格的网站,包括个人主页、好友请求等,大概什么样的数据库表比较合适 即用户、状态 一份粗略的清单会有帮助吗 谢谢如果/当你的站点增长到数百万或记录,你会发现mysql是你最大的敌人。Facebook已经出现了,他们从Mysql开始,然后转向Cassandra。如果你想写你的Facebook,那么做一项研究,看看Facebook是如何使用的。他们实际上对此相当开放,他们开放源代码Cassandra,Twitter现在也使用它 我的建议是不要使用MySQL,它是一颗

我正在考虑建立一个facebook风格的网站,包括个人主页、好友请求等,大概什么样的数据库表比较合适

即用户、状态

一份粗略的清单会有帮助吗


谢谢

如果/当你的站点增长到数百万或记录,你会发现mysql是你最大的敌人。Facebook已经出现了,他们从Mysql开始,然后转向Cassandra。如果你想写你的Facebook,那么做一项研究,看看Facebook是如何使用的。他们实际上对此相当开放,他们开放源代码Cassandra,Twitter现在也使用它


我的建议是不要使用MySQL,它是一颗定时炸弹。我的意思是,它从美妙、快速、快乐的时光开始。然后,随着数据库规模的增长,你会发现你自己在与MySQL的无休止的优化之战中,这是一场你无法取胜的战斗。

关于FB的一切都是人,因此你肯定需要一个具有自我引用多对多关系的Person表。您可能真的希望使用诸如doctrine之类的PHP ORM实现这一点,它将大大简化您的生活

人: id:int, 名称:string

关系人: 个人识别码:int, 相关人员id:int, 关系id:int

关系: id:int, 名称:string


还有很多桌子,但很抱歉,我不能全部列出。有一条建议是,一切都应该围绕着人。你到底打算做什么?

在这个问题上,我必须同意德米特里的意见。 当mysql数据库达到一定规模时,很难让它像Facebook那样快速、平稳地运行


至于你的问题,你至少需要用户、用户朋友、状态、朋友请求等等。我建议从小处做起。

AFAIK Facebook实际上仍然主要使用MySQL,但在数千台服务器上进行了切分和分区。天哪。这个答案是错误的。Facebook仍然广泛使用MySQL作为其主要数据存储,他们为MySQL社区做出了巨大贡献,并将其完全集成到其整个基础设施中。-1正如其他人所指出的,这是一个非常误导的答案,即使在2013年也是如此。FB仍然使用MySQL以及MySQL之上/旁边的大量其他技术。