1. 尝试标识该业务场景中的数据模式,即列出该业务涉及到的所有实体型(包括实体名及属性,可以适当简化)。采用如下形式列出:
    实体型名1(属性1,…,属性n)
    尝试在你选定的数据库平台中建立实体型所对应的表,并想办法往其中插入数据,验证你所设计的模型的合理性。

答:列出所有的实体型:
用户(用户ID,个人简介,用户名,所在行业)
问题(问题ID,用户ID,发布时间,问题内容,热度值)
会员(会员ID,用户ID,会员类别,会员时长,注册时间)
回答(回答ID,问题ID,用户ID,回答文本,回答时间)
电子书(书籍ID,书籍名称,作者名称,内容简介,价格)
文章(文章ID,用户ID,文章标题,文章文本,赞同数,发表时间)

在MYSQL中建立对应的实体型的表,并实现数据的插入。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

说明:需要在charset处选择utf8否则默认状态下数据库无法实现汉字内容的输入。

  1. 请自学了解Axure RP等快速原型设计工具的概念及功能,并尝试下载一个试用版。请你充当产品经理和产品界面模型设计工程师,模仿或创新设计两个用户界面(UI、用户视图或外模式的子模式)。请提交原始设计文档以证明你做了此项工作。
    答:完成Axure RP下载后打开的界面如下:
    在这里插入图片描述

根据模仿知乎完成了两个用户界面,分别是打开后的文章回答界面和在知乎进行发布创作的界面。其中,在第二个界面中点击发布按钮后会出现下图所示的提示成功界面,再次点击之后会退回原创作界面。

在这里插入图片描述
在这里插入图片描述

  1. 请通过你所设计的用户界面所对应的外模式子集,以及该子集与各种模式间的映射关系,思考并叙述数据库系统从内模式、模式、外模式并最终到用户界面的映射(mapping)过程,分析过程中可能会涉及到的数据加工环节。分别指出一般需要由程序员写程序实现的环节和由数据库管理系统实现的环节。
    答:模式/内模式映像:定义了数据全局逻辑结构与存储结构之间的对应关系,当存储结构改变时,由数据管理员对模式/内模式映像作响应改变,可以使模式保持不变,从而确保应用程序不必改变,保证了数据与程序的物理独立性。

外模式/模式映像:对于一个模式,可以有任意多个外模式,对于每一个外模式,都有一个外模式/模式映像,定义全局逻辑结构和局部逻辑结构之间的关系。当模式改变时,由数据库管理员对各个外模式/模式映像作相应改变,可以使外模式保持不变,应用程序依据数据的外模式编写,所以应用程序不必修改,确保数据的逻辑独立性。在我所选择的业务模式中,外模式就是用户在进入界面之后所看到的推荐文章,如果点击其他的分类,例如视频等,就是调用另一种外模式/模式映像。

过程中可能会涉及到的数据加工环节:在外模式向应用程序进行映像的时候,就需要通过加工,把数据转化为用户处的信息。在选择的业务模型中,就是在进行索引之后,对于相关的索引结果进行排序和显示,这往往是根据赞同数或者阅读人数。包括进入界面后系统推荐的文章或者问题。

需要由程序员写程序实现的环节和由数据库管理系统实现的环节:在用户进行检索的时候,对索引结果进行筛选排序显示,通过数据库中的文章热度,选出推荐文章放在各自的界面,并定期更新。

  1. 请尝试学习掌握数据库系统数据规模(条或记录数)估算方法,估计所选业务场景的数据规模,针对这种规模,请说明这种规模的数据可能对内模式的实现或表示存在什么要求。
    答: 数据库的规模,需考虑综合指标,即数据库对象的数量和属性、数据库对象所占用的物理空间等诸多因素。因为“表”是数据库的核心和基础,通过表估算数据库规模能很好地代表其它数据库对象(视图、索引、角色等)。不同类型的表对数据库规模的影响不同。
    在字典表、操作表、报表表中,操作表对数据库规模的影响最大。表结构对数据库规模也有影响,主要体现在属性数量和属性数据类型上。属性数量越多,数据库规模越大;数据类型越复杂,数据库规模越大。
    表中元组的数量对数据库规模也有影响。表中元组越多,数据库规模越大。
    我选择的业务模型是知乎等论坛业务模型,以知乎作为这一模型的代表案例,目前可以查到的是知乎APP月活数量为接近2000万人。其中,知乎等论坛由于自身定位的原因,基本上很少会有信息的丢失,同时,这种多文本少图片视频的格式会导致知乎的数据库出现记录数很高但是具体存储空间占用有限的情况。
    对于这种大流量的数据库,需要良好的空间压缩性能和较快的检索速度。这就需要采用存储结构更加合理的内存储模式,另外需要服务器提供足够的内存。
Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐