Web 在类似论坛的网站中存储信息

Web 在类似论坛的网站中存储信息,web,relational-database,forum,Web,Relational Database,Forum,假设我们有一个网站,每个人都有一个个人资料,其他人对个人资料写评论。(就像facebook上的墙一样)。存储为某人所做评论的最佳方式是什么?我的想法就像一个关系数据库类型的东西,其中将有一个字段,以一个长字符串的形式保存一个人的所有注释,用某种分隔符分隔,但我不确定这是否是最好的方式。有什么想法吗?postgresql、mysql、sqlite甚至leveldb,如果您想要简单的键值存储。现在有很多教程可以开始使用它们。关系数据库的问题是它们不能很好地扩展到超大规模的社交网站。当您的表开始变大时

假设我们有一个网站,每个人都有一个个人资料,其他人对个人资料写评论。(就像facebook上的墙一样)。存储为某人所做评论的最佳方式是什么?我的想法就像一个关系数据库类型的东西,其中将有一个字段,以一个长字符串的形式保存一个人的所有注释,用某种分隔符分隔,但我不确定这是否是最好的方式。有什么想法吗?

postgresql、mysql、sqlite甚至leveldb,如果您想要简单的键值存储。现在有很多教程可以开始使用它们。

关系数据库的问题是它们不能很好地扩展到超大规模的社交网站。当您的表开始变大时,查询将花费越来越多的时间。如果您的站点非常小,那么关系数据库就可以了。我认为您可能需要调查“NoSql”数据库

从这里开始:

您将有两个单独的表,一个用于用户,一个用于注释,所有条目都有其唯一的ID,模式如下所示:

Users (ID, name, mail, etc)
Comments (ID, for, from, time, content, etc)

其中forfrom字段是用户ID。

为什么不使用CMS或某种博客系统?嗯,我从来没有想过。我猜你是说像Drupal这样的东西?你知道Drupal是否允许我创建一个网站,每个人都可以创建自己的个人资料吗?是的,用户帐户和评论都内置在Drupal中,用户可以通过一些模块编辑个人资料页面。我认为drupal尤其适合这样的网站,因为它没有严格的前端-后端区别。如果你想用用户提供的内容构建社交网站,那就太好了。谢谢。但我的主要问题是,简单的键值存储是否是在个人资料中存储评论的最佳方式(与在youtube上存储视频评论相同)。最有效的方法是什么?当您需要关系数据时,请使用关系数据库。当您需要简单的查找时,请使用键值存储。使用键值存储可以使用注释系统,但一旦您开始希望进行关系查询,如“在X天和Y用户上给我所有注释”,如果您从关系数据开始,您将生活得更轻松。对于大多数常见的任务,关系数据库作为键值存储也可以很好地工作,所以我认为这是最好的选择。