首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Snapchat如何存储其数据?

Snapchat如何存储其数据?
EN

Database Administration用户
提问于 2015-11-05 15:35:27
回答 1查看 6.6K关注 0票数 1

我是一名高中生,对开发应用程序和学习更多关于数据库和服务器的知识感兴趣,所以请耐心听我说,如果这是一个错误的地方,或者是一个明显的答案。

我已经用Parse.com开发了几个小型数据库Parse.com应用程序,那么数据库是如何工作的呢?当然,与真正的数据库相比,这一点也不算什么。

我的问题是:像Snapchat这样的应用程序是如何存储数据的(你认为呢)?

它就有一张大桌子吗?也就是说,当某人上传和应用程序时,它是否在一个大表中创建了一个对象/行,图片是谁发送的,收件人,日期等等?然后,当用户登录时,应用程序是否会查询该大表中所有对象的大型表,该表中的当前登录用户id与收件人关联?

高层次的,概念性的。这是我对它的工作方式的思考,但我知道Snapchat服务器上有数百万张图片,所以我不知道查询这样一个大表的速度如何,或者如何组织它。

EN

回答 1

Database Administration用户

发布于 2015-11-05 16:10:08

所有好的、未来的数据库在某种程度上都是标准化的。标准化由Louis ~ Pro SQL Server 2008关系数据库设计和实现描述为

规范化的过程非常简单:以复杂的实体为例,从它们中提取更简单的实体。这个过程一直持续到数据库中的每个表都代表一件事,而每一列都描述了这件事。

因此,根据您的示例,我将设想Snap聊天数据库(假设我们正在讨论OLTP模型而不是使用NOSQL / BIGData)将有多个实体,每个实体包含相关数据,并通过适当的关系(即1..Many、多到多等)与其他实体相关。例如,person实体可能包含UserName和密码,并通过1.m关系与loginToSite实体相关。我建议1.m的关系,因为一个人可以登录网站多次,但每次登录到网站记录将只涉及一个用户。如果所有属性都存储在单个实体中,那么在本例中,UserName和密码信息将在每个登录记录中重复,并打破规范化规则。这也会导致数据库可用性的噩梦!!

取决于商业规则,这些都是你需要问的问题。一个用户记录可能与一个或多个照片记录相关,或者一个用户可以与一个或多个照片记录相关,一个照片记录可以与一个或多个用户记录相关。在这种情况下,会有很多到许多关系。

在考虑数据库设计时,首先要通过与最终用户交谈、审查报告/扩展表(任何包含最终用户使用的数据的内容)和生成ERD来完成概念设计。然后,一旦关系被商定,所有要存储的数据被捕获,ERD建模,您就可以转移到事物的物理方面,并在性能、数据类型的选择、索引的决定等方面进行工作。

票数 2
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/120209

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档