我该使用什么作为社交网站的后端?
我对这个网站的主要要求有两个,一个是关于“分离度”的,另一个是“图匹配”,也就是给定两个图,返回某种相似度评分。
我最开始的想法是用MySql来实现这个功能,这样可以很好地存储我想管理的“朋友”信息(类似于Twitter上的朋友),但我在想,如果我想给用户展示一些结果,这些结果需要用到图算法(比如找出两个人之间的最短路径),那可能MySql就不太合适了。
我打算在前端使用Python,可能会用到像Pylons这样的框架,但我还没有决定具体用哪个,如果有好的后端解决方案,我也愿意考虑其他的选择。
我在考虑用MySQL来存储用户的个人资料数据,用neo4j来处理用户之间关系的图信息,然后让一个Python应用程序同时与这两个数据库进行沟通。
也许还有更简单或更高效的方法来实现这些功能。目前对我来说,做出一个合适的原型比担心系统的扩展性更重要,但如果能节省我未来重写或迁移的时间,我愿意花时间学习一些新东西。
附言:我更像是一个程序员,而不是数据库设计师,所以我宁愿以后重写前端,也不想迁移数据库,这也是我寻求建议的主要原因。
4 个回答
我知道这可能不是你想要的确切答案,但我觉得提到这一点对提问者和其他观众都有好处:BuddyPress 是一个经过精心打磨的社交网络平台,它是建立在 WordPress 之上的(使用 php 和 MySQL)。如果你不打算做一些复杂的事情,这个系统非常不错;即使你想做一些高级的功能,也可以在不需要转向其他更复杂的语言(比如 Python)的情况下,做到相当不错。
如果你不想使用专有的数据库,MySQL绝对是你最好的选择。
至于编程语言,选择你熟悉的那种就行。虽然YouTube和Reddit是用Python写的,但很多其他大网站用的是Ruby(比如Hulu、Twitter、Techcrunch),或者C++(像Google),还有PHP(比如Facebook、Yahoo等)。
Python/Django 提供了一个很好的社交网站框架,叫做 Pinax。