0755 - 8386 6191
Company News

东莞设计VI设计公司新闻系统发布

来源:本站日期:2017-12-23
东莞设计VI设计公司新闻系统发布
东莞vi设计
如果您已经跟踪了我们以前关于系统设计面试问题的帖子,您可能会惊讶于新闻提要系统是多么的普通。
无论你是建筑、Instagram或脸谱网,东莞VI设计公司将需要某种形式的新闻饲料系统显示更新。
事实上,关于新闻提要有很多有趣的细节,比如如何排列feed、如何优化发布等。所以在这篇文章中,我将介绍这个流行的问题——设计新闻提要系统。
 
 
为了简单,让我们专注于为脸谱网设计新闻提要系统,因为不同的产品有不同的需求东莞设计师酒店,
简要地总结一下这个功能,当用户进入他们的主页时,他们会根据特定的顺序看到来自他们朋友的更新。供稿可以包含图像、视频或文本,用户可以有大量的朋友。
 
那么如何从零开始设计这样的新闻提要系统呢?
如果你没有考虑过这个问题,最好先自己解决,然后再阅读剩下的文章。虽然没有标准答案这样的东西,你仍然可以通过比较你的解决方案来学到很多东西。
让我们开始吧。正如我们前面所说,当面对如此庞大而模糊的系统设计问题时,最好将一些大的问题分成子。
 
 
对于新闻提要系统,显然我们可以把它分为前端和后端两部分。我将跳过前端,因为它在系统设计面试中并不常见。对于后端,三个子问题似乎对我至关重要:
数据模型。我们需要一些模式来存储用户和feed对象。更重要的是,当我们试图优化读/写系统时,会有很多权衡取舍。我将详细解释下一步。
 
 
饲料出版。当只有几百个用户时,发布可能是微不足道的东莞网站设计。但是,如果有数百万甚至几十亿的用户,这可能是代价高昂的。所以这里有一个规模问题。有两个基本对象:用户和饲料。用户对象,我们可以存储用户标识、名称、注册日期等。和饲料的对象,有feedid,feedtype、内容、元数据等,应支持图像和视频等。
如果我们使用关系数据库,我们还需要建立两种关系:用户关系和朋友关系。前者相当简单。我们可以创建一个用户表存储用户标识和相应的饲料feedid。对于单个用户,如果他发布了许多提要,它可以包含多个条目。
 
对于朋友关系来说,东莞网站设计邻接表是最常用的方法之一。如果我们把所有用户看作一个巨图中的节点,则连接节点的边表示朋友关系。我们可以使用一个包含模型的边缘在每个条目两用户id的朋友表(朋友关系)。通过这样做,大多数操作都非常方便,比如取出用户的所有朋友,检查两个人是否是朋友。
 
 
在上面东莞网站设计中,让我们看看当我们从用户的所有用户那里获取数据时会发生什么。
该系统将首先获得所有用户ID的朋友从朋友表。然后把所有的feedids每个朋友从用户进料台。最后,饲料的内容是基于feedid取饲料表。您可以看到,我们需要执行3个连接,这将影响性能。
 
一种常见的优化是储存饲料的内容在用户进料台feedid这样我们不需要再加入饲料表。这种方法被称为非规范化,即通过增加冗余的数据,我们可以优化读取性能(降低连接数)。
 
缺点是显而易见的:
数据冗余。我们存储冗余数据,占用存储空间(经典时空权衡)。
东莞品牌设计数据一致性。每当更新feed时,我们都需要更新feed表和用户feed表。否则,存在数据不一致性。这增加了系统的复杂性,记住,没有一个方法总是比其他更好的(规范与反规范化)。这是一个你想优化读写的问题。
 
对提要进行排序最直接的方法是创建它的时间。显然,脸谱网所做的不止于此。“重要”饲料排名第一。
在跳转到排序算法之前,我通常想问一下我们为什么要改变排名?我们如何评价新的排序算法是否更好?如果候选人自己提出这些问题,那无疑是令人印象深刻的东莞品牌设计
之所以有更好的排名,并不是说这似乎是正确的做法。相反,每件事都应该发生是有原因的。假设有几个我们关心的核心指标,比如用户粘性、保留率、广告收入等等。一个更好的排名系统可以显著地改进这些指标,这也回答了如何东莞品牌设计
标签: 深圳VI设计|深圳VI设计公司返回首页

全部资讯  设计动态  行业新闻  设计分享  

592 条记录 1/50 页 下一页  1  2   3   4   5  下5页 最后一页
Office

深圳市福田区福华一路98号
卓越大厦2008-2010室

©2014-2016 深圳市联合创智设计顾问有限公司版权所有
粤ICP备17133938号-2

GET IN TOUCH

T. 0755-83866191/ 8386 6393
E. chinalhcz@126.com

> 政府组织vi系统手册设计欣赏

> 音乐品牌设计和音乐logo设计分享

GET IN TOUCH