1

我有不同的帖子类型,例如状态更新、项目、捐赠等。每种类型的帖子在数据库中都有一个或多个表。用户可以创建所有帖子类型。用户有一面像 Facebook 这样的墙,他可以在其中看到他按时间顺序创建的不同帖子类型(最后创建的任何帖子类型都应该在墙的顶部)。

什么是最合适的方法?

  1. 从数据库中获取具有不同查询的数据存储在数组中,然后操作数组?
  2. 要编写一个复杂的单个查询,它可以按时间顺序从不同的表中获取数据?
  3. 每当用户执行任何活动时,为用户活动创建一个单独的表并存储数据?
  4. 你的做法和上面的有什么不同?
4

1 回答 1

1
  1. 设置简单,性能不是很好(有一个非常糟糕的最坏情况)。

  2. 是最简单的。你说复杂,但你可以通过构造相当容易地做到这一点UNION + ORDER BY。性能会很不错。

  3. 我认为会表现最好,但会有一些重复,事情可能会变得有点复杂。关系数据库不太擅长多态性。

重要的是要意识到在这些解决方案之间切换相对容易。如果你有一个面向服务的架构(或者一般来说只是好的设计)。所以我不会太担心你选择哪种方法。如果将来您选择的方法似乎效果不佳,您可以切换到另一种方法。

于 2013-11-04T11:05:08.330 回答