【问题标题】:What should I use for the backend of a 'social' website?我应该为“社交”网站的后端使用什么?
【发布时间】:2011-03-08 18:09:58
【问题描述】:

我对网站的两个主要要求与分离度和图匹配有关(给定两个图,返回某种相似性分数)。

我的第一个想法是使用 MySql 来执行此操作,这对于存储我想如何管理“朋友”(类似于 Twitter)可能会很好,但我正在考虑是否要向用户显示结果使用图形算法(比如两个人之间的最短路径)也许不是这样。

我选择的前端语言是使用 Pylons 之类的 Python,但我还没有做出任何具体的承诺,如果它与一个好的后端解决方案相匹配,我愿意让步。

我正在考虑使用 MySQL 存储用户配置文件数据,使用 neo4j 存储用户之间的关系图信息,然后让 Python 应用程序与它们两者对话。

也许有一种更简单/更有效的方法来做这种事情。目前对我来说,完成一个合适的原型比担心可扩展性更重要,但我愿意花一些时间学习新的东西,如果它可以节省我将来重写/移植的时间。

PS:我更像是一名程序员而不是数据库设计师,所以我宁愿稍后重写前​​端而不是说移植到数据库上,这是我寻求建议的主要原因。

【问题讨论】:

标签: python sql mysql database


【解决方案1】:

Python/Django 为Pinax 提供了一个很好的社交网站框架。

【讨论】:

  • Python 实际上非常容易用于网站和 Web 应用程序,而 Django 很棒。通读它的手册/教程可能看起来令人生畏,但我向你保证这是值得的。如果您选择使用 Django 的 ORM 或什至像 SQLAlchemy 之类的其他东西(因为我已经与 django 一起使用,没有任何问题),您会发现您使用的任何数据库后端几乎都不重要。我更喜欢 postgresql,但使用你可以轻松支持的任何一个。
【解决方案2】:

除非您想私有化,否则 MySQL 确实是您最好的数据库选择。

至于实际语言,请选择您熟悉的任何语言。虽然 Youtube 和 Reddit 是用 python 编写的,但许多其他大型网站使用 Ruby(Hulu、Twitter、Techcrunch)或 C++(Google)或 PHP(Facebook、Yahoo 等)。

【讨论】:

  • Google 也非常广泛地使用 Python(以及 Java)——特别是,正如您所提到的,YouTube(Google 的最大带宽,可能是增长最快的资产)基本上都是 Python,但是其他 Google 属性也是如此,例如 code.google.com。将 Google 用作“反 Python”示例毫无意义,请参见例如stackoverflow.com/questions/2560310/… !-)
  • 我说 youtube 使用了 python。据我所知,主要的谷歌网站是 C++。没有“反 python”的例子,它只是不是最流行的网络开发语言之一。
  • 我在 Python、Java 和 C# 桌面应用程序方面拥有丰富的经验。然而,我主要关心的不是应用程序本身,而是更多地以一种可以被认为是可扩展的方式存储和检索与它们相关的图形和信息。 Linkedin 有“N 级联系人”,Facebook 显示共同的朋友/向您推荐他们。这些是我想在 Web 应用程序中实现的功能。
  • 另外,人气!= 最佳语言
  • Mysql 是您数据库的最佳选择。 Python (Django) 是一个很棒的框架。
【解决方案3】:

我意识到这可能不是您正在寻找的答案,但我认为它有助于向观众/寻求者提及整个问题:BuddyPress 是一个精心打造的“开箱即用”社交网络平台,建立在WordPress(php,MySQL)的顶部。如果您不尝试做高级的事情,这是一个很棒的系统,如果您尝试做高级的事情,您仍然可以走得很远,而不必重载到 Python 等其他更深层次的语言。

http://buddypress.org/

【讨论】:

  • 对这些 cmets 投反对票的人能否留言说明原因?建设性的批评?
【解决方案4】:

我会使用Graph Database 和 MySQL 的组合。 Graph 数据库应该只用于有效地存储用户信息和关系。对于其他所有内容,例如用户页面等。我会使用 MySQL。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-27
    • 1970-01-01
    • 2021-10-05
    • 2022-11-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多