观察社交网络行为:记录或填充数据库?
Posted
技术标签:
【中文标题】观察社交网络行为:记录或填充数据库?【英文标题】:Observing social web behavior: to log or populate databases? 【发布时间】:2010-06-06 04:49:48 【问题描述】:在考虑社交网络应用架构时,在数据库或日志中记录用户社交模式是更好的方法吗?我确信行为、动作、事件将严格存储在数据库中,但我注意到一些较大的社交网站也通过记录发生的事情来跟踪很多内容。
将有关用户的重要数据存储在数据库中是否是一种好习惯,并且由于可以轻松产生数千个用户操作,是否应该简单地记录它们?
【问题讨论】:
【参考方案1】:请记住,例如,Facebook 不会更新用户信息本身,他们只是插入您的新信息并使用最新信息,保留旧信息。如果您打算采用这种方法,那么强烈建议(如果不是强制性的话)使用像 Cassandra 这样的 NoSQL DB,您需要速度而不是完整性。
信息 = 金钱。更新 = 丢失信息 = 赔钱。
【讨论】:
既然可以使查询成为可能,您对记录到 XML 有什么看法?如果可能的话,我想保持轻量级,我认为数据库在驱动器上的资源成本会更高。但它们的收益可能会超过资源开销。【参考方案2】:显然,这取决于你想用它做什么(以及你的意思是“记录”)。
我建议使用灵活的数据库存储。这样您就可以相当轻松地对其进行查询,并使其能够灵活地适应以后的更改。
此外,从隐私的角度来看,能够轻松地将项目与某些实体相关联是适当的,以便可以在需要时将其删除。
【讨论】:
【参考方案3】:您在“记录”和“数据库”之间做出人为的区分。
只要可行,我都会登录到数据库,即使这些数据实际上是静态的并且永远不会更新。这是因为如果您可以将日志表与其他非静态数据交叉引用,则数据分析会容易得多。
当然,如果您有大量的事情要跟踪,那么记录到 SQL 数据表可能不切实际,但在这种情况下,您可能应该考虑为应用程序使用其他类型的数据库。
【讨论】:
以上是关于观察社交网络行为:记录或填充数据库?的主要内容,如果未能解决你的问题,请参考以下文章
通过使用查询而不是重复观察单个事件来加快获取我的社交网络应用程序的帖子
通过使用查询而不是重复观察单个事件来加快获取我的社交网络应用程序的帖子
通过使用查询而不是重复观察单个事件来加快获取我的社交网络应用程序的帖子