我正在制作一个涉及用户和新闻提要的社交应用程序。为了按时间顺序显示用户的新闻源,以下哪项更有意义?
- 获取该用户关注的每个用户的所有帖子,并按时间顺序对其进行排序
- 每次用户发帖时,将该 ID 和日期保存到每个 他们的关注者个人资料数据(似乎是多余的)
- 您可能知道的更好的解决方案
通常,社交网站是使用图形数据库构建的。我曾在其中一个社交网站上工作过。下面是显示新闻提要的技术堆栈和逻辑。
-
Java, Spring MVC
-
OrientDb - 包含与边连接的顶点的GraphDB
-
JQuery & Bootstrap for UI
-
Apache Solr-用于用户,文章的文本搜索
以下是新闻源的逻辑:
-
当任何用户执行任何活动时,我们过去常常创建包含的活动顶点 活动的元数据,如日期时间、活动类型和参与者等。
-
我们有一个批处理程序(每 3 分钟运行一次),它将对所有未处理的活动进行。批处理的责任是从活动生成新闻源,并将这些newFeeds_To_Be_Displayed分配给要在屏幕上显示的相关用户(即参与者的连接)新闻源。
-
当用户登录时,我们习惯于查询给定用户的newFeeds_To_Be_Displayed并将其显示在屏幕上。
我们选择异步计算newFeeds_To_Be_Displayed,因为这是一个耗时的过程,我们不想以糟糕的用户体验告终。