我需要设计/架构师/开发基于Web的社交网络类型应用程序。

基本功能:
-用户在系统上创建帐户
-用户同意彼此“成为朋友”
-用户在系统内创建内容
-用户指定哪些朋友可以查看/编辑他们创建的内容

当然,此核心功能已经创建了很多次了吗?是否存在有关如何实施此类事情的最佳实践模式?

我最感兴趣的是它的数据库外观。

从SQL角度(任何数据库)来看,这会是什么样?
从NOSQL角度(任何NOSQL数据库)来看会是什么样?

我最感兴趣的是如何在数据库中解决“内容可见性”问题?即数据库/应用程序如何确保只有获得批准的朋友才能看到用户创建的内容?

谢谢

最佳答案

首先要弄清楚的是数据库,一个SQL看起来就像一个规范化的sql数据库。还有什么可能呢? Nosql数据库看起来像一堆名称/值对文件。

在您对现有的受欢迎和不受欢迎的网站进行大量研究之后,才能确定他们的体系结构和目标市场以及为这些市场提供的特定服务,这三种方法都可以在社交网站建立之后和之后进行。


从头开始(或使用框架)。像Facebook,Beebo,Myspace等。这显然是到达那里的最长途径,但这确实意味着您有卖东西的机会。平台,会员资格和USP都是您的,可以出售给Rupert Murdoch或任何人。
使用适合自己社交网站并使用基本功能的CMS,再加上插件以及您自己的灵感,即可打入目标市场。在该区域,经常使用Drupal(我也成功地使用了它),但是可以使用Joomla,Xaraya和许多其他免费和付费的软件。是的,更多的研究。当Rupert给您一个钟声时,在这里卖的少,因为基本工具可能是GPL
使用提供的系统之一进行注册,然后使用工具构建自己的系统,但是提供了所有好处,这些被称为白标网站。 Start looking here。在这里,如果有人想接管您,您将无力出售。


如何处理“内容可见性”。当然,最初,网站建设者会决定谁可以看到内容。仅所有者,朋友,注册用户,普通大众?等等。但是,此决定必须符合网站的目标和政策。解决此问题的最佳方法是通过基于角色的访问RBAC see here for details

当您说“需要设计/架构师/开发”时,是因为压倒性的内在冲动还是某人付钱给您?

无论哪种方式,请记住社交网站空间非常拥挤。如果您只是在建立另一个YouTube或FaceBook,那么您不可能获得使该网站成功商业化所需的关键数量。

如果是针对尚未迎合的利基市场,例如然后,您将知道“ Peckham and Brockley异国情调的鸟友俱乐部”是什么市场以及需要哪些功能,因此可以使用您认为最简单,最便宜的上述任何一种方法,但要由您分析和执行。

当然,您可能会想到一个主流的社交网站,而这个社交网站却未被其覆盖,也就是说,您已经发现了神话中的“市场空白”。在这种情况下,请准备但要失望。或不。

10-06 05:16