NS与博客最大的区别在于关注重点不同,后者以博客为平台,基于博客ID而产生的日志,话题,照片,群组,视频,分享,好友等等,而前者强者个人,基于人ID而与其相关的日志,话题,照片,群组,好友等等,虽然功能上差不多,但关注重点不同,因而对数据库的设计而言,user_id成为全部数据设计的核心,根据我对facebook,ucHome两个数据表结构分析来看,基本上所有的功能都是通过user_id引导,从而延伸到相关的组件,如日志,照片,群组等等,或者是个人的东西,或者是大家的东西,但都有一个共同的特点:都离不开user_id。
facebookuchome
Facebook的数据结构分析:
一,主要基于用户表,这是最基础数据源,设计中避免数据字段过多进行了数据字段分离设计,如学校状态,时间分区,安全问题等,这些分离出来的字段单独成表,既有利于降低数据查询的压力,而且便于扩展,这个数据设计思路是facebook设计数据库的灵魂(个人观点)。我的分析如下:
1,facebook数据表设计,能分离的字段尽量分离,这主要体现在facebook的数据库小表非常多,同样一张数据表,完全可以与其它表合并,但其通过一个user_id查找,再根据相关的ID查找其它信息,实现字段分离。
2,对比ucHome数据表设计,同样一个功能,facebook使用3-4张表设计,而UChome却只用一张表,最突出的特点在于,UcHome数据的约束字段(如访问权限)附属在信息(如每个篇日志,每一张照片中),但facebook却分离了这此信息,非常灵活。
二,Facebook数据中有一张基础档案表,个人认为这是一张非常特别的表,原因如下:
1,表字段是全是ID集合表,如:user_id,intersted_id等等,可以说是一张十通八达的表,通过这张表可以获取用户整个信息,而这些信息对于SNS来说,就是我们上面说的关注的重点。
2,为什么要这样设计?个人认为,提高数据表的查询能力,这种纯ID的字段表要快得多,而每次获取的信息只是个人信息中的一小部分,因此,对于SNS来说,设计数据库要着重在用户资料的细化上,因为大部分查询都是查询用户的一系列操作等上。
三,扩展功能,其实这些所谓的功能完全非常独立,功能上也互不相干,对于日志,群组,相册等等功能来说,只需要一个东西,user_id。其它都完全可以独自处理。同样,facebook的扩展功能数据表设计也是表分离,表结构尽量分离最小化,如:日志(日志表,日志回复表,日志图片表)。
分享到:
相关推荐
uchome数据表结构
uchome数据字典uchome数据字典uchome数据字典uchome数据字典uchome数据字典uchome数据字典uchome数据字典
UChome 1.5数据结构表说明 UChome 1.5 数据字典
uchome数据分析uchome数据分析
uchome的数据表 很详细 的数据表结构分析
uchome2.0的数据表,所有的数据表说明都在里面
文档内容目录: 【UCHome二次开发】uchome文件体系介绍 4 站点结构图 4 UCHOME安装后的主要目录与文件介绍 4 文件入口参数列表及详细介绍 5 数据调用图示 8 ...【UCHome应用】增加sns人气的客服秘籍 68
ucenter部分数据库表说明 数据字典 数据库 ucenter uchome 论坛
1 uchome2.0_官方正式版数据字典
uchome数据字典是对uchome的数据库的经典分析,对uchome二次开发有很大的帮助
uchome数据字典htm格式uchome数据字典htm格式
2.2.40 uchome_tagspace (用户群组对应关系表,存放应用用户和群组的对应关系) 19 2.2.41 uchome_task 19 2.2.42 uchome_thread (群组话题表,存放群组话题标题等信息) 19 2.2.43 uchome_trace (用户踩信息表,存放用户...
uchome2.0 数据字典.docuchome2.0 数据字典.docuchome2.0 数据字典.docuchome2.0 数据字典.docuchome2.0 数据字典.doc
UCHome1.5正式版数据字典,里边包含UCHome全部表结构。
uchome2.0,数据字典,uchome文档,uchome数据字典
UCHome 1.5 用户手册UCHome 1.5 用户手册UCHome 1.5 用户手册UCHome 1.5 用户手册UCHome 1.5 用户手册
ucenter uchome数据库解析 uchome ucenter 数据库分析
uchome数据调用sql语句,便于uchome开发使用!!
UCHome2.0正式版数据字典UCHome2.0正式版数据字典