唯一与我正在开发的内容最接近的是 Facebook 的用户活动日志。所以我想如果我能问一下 FB 如何可能在数据库层实现这样的功能,那么它可能会让我对如何解决我自己的类似问题有一些了解。
如何在 MySQL 数据库中设计一个模式来保存特定用户的所有活动。在 FB 的例子中,你有很多用户可以做的活动,比如某事、评论某事、添加朋友、使用应用程序等。所有这些活动都有自己的数据库架构,我敢肯定,所以我假设活动日志架构需要以某种方式引用这些其他数据。
所以我要问的是想法。我能想出的唯一想法是创建一个活动表和多个“连接表”,这些表引用了活动表和活动数据(例如对某事的评论、喜欢某事等)。但是,对于每种新类型的活动和新业务逻辑,此模式都需要一个新表来处理这些新表。也许人们无法解决这个问题,但我对一种模式感兴趣,当新类型的活动添加到系统中时,它几乎不需要对模式和业务逻辑进行更新。
需要明确的是,这个问题听起来并不像是我只是想构建另一个 Facebook 克隆。我只使用 FB 作为对类似于我正在尝试做的事情的参考。更抽象地说明我的问题:我试图将我的数据库中的各种数据聚合到一个可以查询的单一模式中,并且只要有一种新的数据,几乎没有任何模式更改,否则是什么重点是什么?FB 有两个这种聚合的实例,活动日志和通知(我能想到的)。
任何帮助表示赞赏。