微信数据库分析与设计说明书
数据库设计说明书

数据库设计说明书一、背景随着信息化时代的到来,数据库管理系统在各个领域得到广泛应用,数据库设计成为信息系统中至关重要的一环。
本文描述了一个虚拟企业的数据库设计,旨在解决该企业业务数据管理方面的需求。
二、需求分析1. 数据库目标建立一个可靠、高效、安全的数据库系统,满足企业对业务数据的存储、管理和查询需求。
2. 数据库功能•实现数据的高效存储和检索•确保数据的完整性和一致性•支持不同数据表之间的关联和查询•提供权限管理和数据安全保障三、数据库设计1. 实体关系模型(ERM)以下是本数据库的实体-关系模型设计:•公司(Company)–公司ID (CompanyID)–公司名称 (CompanyName)–公司地址 (CompanyAddress)•员工(Employee)–员工ID (EmployeeID)–姓名 (EmployeeName)–部门 (Department)–职位 (Position)•产品(Product)–产品ID (ProductID)–产品名称 (ProductName)–价格 (Price)•订单(Order)–订单ID (OrderID)–员工ID (EmployeeID)–产品ID (ProductID)–订单日期 (OrderDate)2. 数据表设计公司表(Company) | 公司ID | 公司名称 | 公司地址 | |——–|——–|———| | 1 | XX公司 | xx地址 | | 2 | YY公司 | yy地址 |员工表(Employee) | 员工ID | 姓名 | 部门 | 职位 | |——–|—–|—-|—-| | 1 | 张三 | 开发部 | 工程师 | | 2 | 李四 | 销售部 | 主管 |产品表(Product) | 产品ID | 产品名称 | 价格 | |——–|——–|—–| | 1 | 产品A | 100 | | 2 | 产品B | 200 |订单表(Order) | 订单ID | 员工ID | 产品ID | 订单日期 | |——–|——–|——–|———| | 1 | 1 | 1 | 2022-01-01 | | 2 | 2 | 2 | 2022-01-02 |四、安全性和性能考虑1. 安全性•数据备份和恢复策略•访问权限控制•数据加密传输2. 性能•索引优化•查询语句调优•适当的硬件资源配置五、总结本文介绍了一个虚拟企业的数据库设计说明书,包括需求分析、数据库设计、安全性和性能考虑等内容。
线上商城微信小程序开发说明书

线上商城微信小程序开发说明书本文旨在介绍一款线上商城微信小程序的开发说明书。
该微信小程序旨在为用户提供一个便捷的购物平台,使用户可以在微信中轻松购买商品。
二)项目目标该微信小程序的目标是为用户提供一个简洁、易用的购物平台,使用户可以更方便地购买商品。
同时,该平台也旨在为商家提供一个便捷的销售渠道,帮助商家更好地推广商品。
二、商城开发需求描述一)功能划分本商城微信小程序的功能主要分为平台装修、商家管理、用户管理、商品管理、订单管理、分销管理、系统设置和营销系统等八个模块。
二)功能描述1、平台装修该功能模块主要是为商家提供一个自定义店铺的功能,商家可以根据自己的需求进行店铺的装修,包括店铺主题、店铺背景、店铺logo等。
2、商家管理该功能模块主要是为商家提供一个管理后台,商家可以在后台管理商品、订单、用户等信息。
3、用户管理该功能模块主要是为管理员提供一个管理后台,管理员可以在后台管理用户信息,包括用户注册、用户登录、用户资料等。
4、商品管理该功能模块主要是为商家提供一个管理商品的后台,商家可以在后台管理商品的信息,包括商品名称、商品价格、商品图片等。
5、订单管理该功能模块主要是为商家提供一个管理订单的后台,商家可以在后台管理订单的信息,包括订单状态、订单详情、订单金额等。
6、分销管理该功能模块主要是为商家提供一个管理分销的后台,商家可以在后台管理分销的信息,包括分销比例、分销佣金等。
7、系统设置该功能模块主要是为管理员提供一个管理后台,管理员可以在后台管理系统设置,包括网站基本信息、邮件设置、支付设置等。
8、营销系统该功能模块主要是为商家提供一个营销后台,商家可以在后台管理营销活动,包括优惠券、满减活动、秒杀活动等。
三、运行环境1、服务器本商城微信小程序需要运行在一个稳定的服务器上,确保用户可以随时访问。
2、数据库本商城微信小程序需要使用一个稳定的数据库,确保数据的安全性和可靠性。
3、编程语言本商城微信小程序需要使用微信小程序开发的相关编程语言,包括JavaScript、CSS、HTML等。
微信推广方案范文模板五篇

微信推广方案范文模板五篇推广最常用的资源合作方式为网站链接策略,利用合作伙伴之间网站访问量资源合作互为推广。
下面是小编给大家带来的网络推广工作方案,欢迎大家阅读参考,我们一起来看看吧!微信推广方案范文模板(一)江北区建新东路长安医院对面,横着一排大排档,在众门店中,一家名为“钓龙无刺鲫鱼”的馆子,屌丝得容易被人忽略。
这店生得怪,上二楼即为天台、下一楼则是背街,就这么也摆下了25张桌,门面虽小,夏季生意却好得让人眼红。
才开馆子时,陈星宇也走过传统路线。
发传单、做车载广告什么的,折腾三五次,10万元的退伍费就见底了。
2012年,陈星宇守着这家不温不火的小门面。
“本店小,还挤在一堆大排档里,很少引人注意。
”陈星宇说,直到2013年初,在朋友的指点下,他才开始用微信做生意。
刚开始几十个好友,却有能力让一道“奇葩”菜火了三个月。
“去年4月,一位老顾客忽然想吃番茄味的炒丝瓜,我硬是让厨子整了出来,顾客相当满意,当即传了微信,好友一转发,第二天有人点名来吃‘番茄炒丝瓜。
”陈星宇说,这道黑暗料理捧红了馆子3个月,也让陈星宇见识了微信之威。
“爆点爆点爆点,不怕门店小就怕爆点少。
”后来,陈星宇通过打折,进店就让顾客扫码关注,天天挖空心思想着如何和顾客玩。
“饮食选择有很多,能带给食客快乐,才会成为首选。
”陈星宇说,而这得靠互动性极强的玩法。
通过玩,他的微信好友,仅一年就从最初的三四十人增加到数千人;营业额从一天三四百元到旺季一月超过十五万元……微信推广方案范文模板(二)广州食尚国味集团信息中心总监郭春鹏是这个行业趋势下的一个案例。
该集团在全国拥有43家门店的大型餐饮集团,全部员工将近6千人。
近日,郭春鹏在腾讯电商微生活会员卡新版发布会上向媒体分享了他的转型经验。
在郭春鹏看来,O2O转型之路上,如果能用好移动端工具,无论是实现更精准的营销、提升消费的回头率或者是为顾客提供直接的客服服务,这些都能解决。
据郭春鹏介绍,企业目前共拥有10。
2022-2023年软件水平考试《中级软件设计师》预测试题19(答案解析)

2022-2023年软件水平考试《中级软件设计师》预测试题(答案解析)全文为Word可编辑,若为PDF皆为盗版,请谨慎购买!第壹卷一.综合考点题库(共50题)1.以下Python语言的模块中,( )不支持深度学习模型。
A.TensorFlowB.MatplotliBC.PyTorchD.Keras正确答案:B本题解析:Matplotlib是Python的绘图库,可以绘制直方图、条形图、散点图等图形。
2.某软件系统限定:用户登录失败的次数不能超过3次。
采用如所示的UML状态图对用户登录状态进行建模,假设活动状态是Logging in,那么当Valid Entrty发生时,(作答此空)。
其中,[triesimage.png3]和tries++分别为( )和 ( )。
A.保持在Logging in状态B.若[triesimage.png3]为true,则Logged in变为下一个活动状态C.Logged in立刻变为下一个活动状态D.若tries=3为true,则Logging Denied变为下一个活动状态正确答案:B本题解析:根据状态图,事件Valid Entrty发生,同时当triesimage.png3时,系统变为Logged in状态。
[triesimage.png3]是监护条件,是一种布尔表达式,当结果为true时,说明转换符合触发条件。
tries++属于转换,是两个状态之间的一种关系,转换包括事件与动作。
转换会引起系统状态的转变。
3.已知一个文件中出现的各字符及其对应的频率如下表所示。
采用Huffman 编码,则该文件中字符a和c的码长分别为 (作答此空)。
若采用Huffman编码,则字符序列110001001101”的编码应为 ( )。
A.1和3B.1和4C.3和3D.3和4正确答案:A本题解析:根据题意构造哈夫曼树如下。
6个字符的编码分别是:a:0,b:101 ,c:100 ,d:111,e:1101,f:1100 4.某种机器的浮点数表示格式如下(允许非规格化表示)。
系统数据库设计说明书

XXXXX工作平台数据库设计说明书XXXXXX有限公司2015年7月1引言 (1)1.1编写目的 (1)1.2背景 (1)1.3定义 (1)1.4参考资料 (1)2外部设计 (2)2.1标识符和状态 (2)2.2使用它的程序 (2)2.3约定 (2)2.4专门指导 (2)2.5支持软件 (3)3结构设计 (3)3.1概念结构设计 (3)3.2逻辑结构设计 (13)3.3物理结构设计 (14)4运用设计 (15)4.1数据字典设计 (15)4.2安全保密设计 (15)1引言1.1编写目的本文档说明了此平台的数据库的设计,以作为系统开发实现的依据。
本文主要阅读对象为业主方、承建方相关技术人员和项目责任人。
1.2背景>开发者:XXXXX有限公司>用户:XXXXXX>运行该程序系统的计算中心:本系统将使用mysql最新版(5.6)作为数据库存储系统1.3定义1.4参考资料>《软件开发管理规范》> 《ISO 9001:2000》2外部设计2.1标识符和状态数据库软件:MySQL Server 5.6系统要求建立的数据库名称:fireControl;2.2使用它的程序可能使用的该数据库的应用程序包括:1、XXXXX工作平台2015年5月;2.3约定1、新建表时以t_起始,如用户表t_user。
2.4专门指导系统使用JDBC(Java Data Base Connectivity,java数据库连接)实现与数据库的接口,JDBC是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。
JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序,同时,JDBC也是个商标名。
有了JDBC,向各种关系数据发送SQL语句就是一件很容易的事。
换言之,有了JDBC API,就不必为访问Sybase数据库专门写一个程序,为访问Oracle数据库又专门写一个程序,或为访问Informix数据库又编写另一个程序等等,程序员只需用JDBC API写一个程序就够了,它可向相应数据库发送SQL调用。
小程序设计说明书

小程序设计说明书第一部分:概述本小程序设计说明书旨在介绍小程序的设计思路、功能模块以及技术实现方法,为开发团队提供参考和指导。
以下将详细介绍小程序的设计原则、界面结构、功能需求和技术实现等方面的内容。
第二部分:设计原则1. 便捷性:小程序需要提供用户友好的操作界面,方便用户快速完成所需操作。
2. 一致性:界面风格、交互方式、信息展示等方面需要保持一致,提供一致的用户体验。
3. 轻量化:小程序需要精简功能,避免过多冗余的功能,使用户界面简洁明了。
4. 异步加载:通过异步加载方式,提高小程序的访问速度和性能。
5. 安全性:小程序需要采取必要的安全措施,确保用户信息的保密性和数据的完整性。
第三部分:界面结构小程序的界面结构主要包括首页、功能页面以及设置页面。
1. 首页:- 导航栏:位于页面顶部,提供切换页面的入口和搜索功能。
- Banner广告:展示小程序的特色功能或推广信息。
- 功能入口:以图标或文字形式展示各个功能页面的入口,方便用户快速进入相应功能页面。
- 信息展示区:展示与用户相关的信息,如推荐商品、热销商品等。
2. 功能页面:- 根据小程序的具体功能设置相应的页面,如商品列表页面、购物车页面、订单页面等。
- 页面布局应简洁明了,将相关功能模块进行分类,方便用户使用。
3. 设置页面:- 提供用户个性化设置功能,如修改个人信息、更改密码、消息推送设置等。
- 根据需要设定相应的设置项。
第四部分:功能需求本小程序的功能主要分为基本功能和高级功能两个部分。
1. 基本功能:- 用户注册与登录:用户可以注册小程序账号,通过账号登录使用小程序功能。
- 商品浏览与搜索:用户可以浏览商品列表,进行商品搜索,并查看商品详情。
- 购物车:用户可以将感兴趣的商品加入购物车,并对购物车中的商品进行管理。
- 订单管理:用户可以查看已下单的订单状况,进行订单的取消、支付和评价等操作。
- 个人中心:用户可以查看和修改个人信息,管理收货地址等。
微信线上展厅及其运营分析平台需求说明书v1.1
微信线上展厅及其运营分析平台需求说明书1 概述本平台的主要目的是将北京·贵阳大数据应用展示中心的展项从线上搬到线上,并且通过线上报名数据及其线下报名参观数据,对展厅运营情况进行统计分析,为后期的进一步优化提供决策支撑。
本系统采用微信端公众号来进行呈现,关注微信公众号后,可以在线浏览展厅展项及其在线报名参展和参与展示中心举办的活动;同时,由于Web应用程序放置在服务器上,便于对系统进行各种维护工作。
本系统采用Java + ORACLE 在windows操作系统环境开发。
本系统主要微信线上展厅呈现及其运营数据分析平台两个部分。
本平台开发主要分以下几个阶段:第一阶段:需求分析。
与展示中心工作人员进行交流,了解平台的主要功能需求以及获取展项相关资料,整理编写《微信线上展厅及其运营分析平台需求说明书》。
同时进行程序设计规范和界面框架的设计。
第二阶段:平台设计与具体设计。
在该阶段主要根据《需求分析说明书》以及各种资料进行数据库设计和对平台进行模块化,规定各模块之间的接口以及各模块应实现的功能。
然后对系统模块进行详细设计,填写功能模块表。
第三阶段:编程开发。
编程实现每个功能模块并且对模块功能进行测试,完成系统源代码。
第四阶段:系统测试。
组合各模块,对整个系统功能进行测试。
第五阶段:系统安装调试。
实地安装系统及设备并且进行调试。
对该系统主要进行服务器的安装配置和调试,并且对网络进行相关配置。
2 系统开发运行环境2.1 系统开发平台本系统在windows环境中使用eclipse开发,并且采用oracle11g作为数据库管理系统。
2.2 系统运行环境CPU 4核以上;硬盘500G以上;内存8G以上;网络带宽独享20MB/s及以上软件:linux, oracle11g。
3 功能需求说明3.1分析端功能需求说明3.1.1分析端系统结构数据分析端包括四个功能模块,第一个功能模块是微信端内容发布管理;第二个是分析呈现模块;第三个功能模块是数据管理模块;第四个功能模块为用户管理模块,分析端系统结构如下图所示:3.1.2系统功能划分系统功能划分,在分析端共分为4个大模块,分别为微信端内容发布管理、分析呈现、数据管理、用户管理,如下图所示:3.1.3用户特点分析端主要用户是展厅的工作人员,他们可以通过数据分析端对微信端内容进行更新维护,同时还可以通过数据分析模块的数据分析,实时了解微信端的运营情况,为微信端运营及其展厅的运营提供优化决策支撑。
微信开发外包合同范本
微信开发外包合同范本甲方(客户):_____________乙方(开发商):_____________鉴于甲方希望委托乙方进行微信应用的开发工作,乙方愿意接受甲方的委托,双方本着平等自愿、诚实信用的原则,经友好协商,达成如下合同条款:一、项目概述本项目旨在为甲方开发一款微信应用,该应用将具备用户管理、信息发布、数据统计等功能,以提升甲方的业务效率和用户互动体验。
二、开发内容与要求乙方应根据甲方提供的《微信应用需求说明书》进行开发,确保开发内容符合甲方的业务需求和技术规范。
开发内容包括前端界面设计、后端服务搭建、数据库结构设计、程序编码等。
三、开发周期与交付本项目的开发周期为自合同签订之日起计算,预计完成时间为三个月。
乙方应在规定时间内完成开发任务,并按照约定的时间节点向甲方交付相应的成果物。
四、质量保证与验收乙方应保证开发的微信应用稳定可靠,无明显的缺陷和漏洞。
甲方有权对交付的成果物进行验收,如发现问题,乙方应在接到通知后及时修改直至满足要求。
五、费用支付本项目的总开发费用为人民币______元。
甲方应按照合同约定的支付方式和时间节点向乙方支付相应的费用。
首期款项为总费用的30%,在合同签订后支付;余款在项目验收合格后一次性支付。
六、保密条款双方应对在合作过程中获得的对方商业秘密和技术信息予以保密,未经对方书面同意,不得泄露给第三方。
七、违约责任如一方违反合同约定,需承担违约责任,赔偿对方因此遭受的损失。
具体违约责任由双方根据实际情况协商确定。
八、争议解决因履行本合同所产生的争议,双方应首先通过友好协商解决;协商不成时,可提交至甲方所在地人民法院诉讼解决。
九、其他事项本合同未尽事宜,由双方另行协商补充。
本合同一式两份,甲乙双方各执一份,具有同等法律效力。
十、合同生效本合同自双方授权代表签字盖章之日起生效,有效期至项目验收合格并结清所有款项之日止。
甲方(盖章):_____________授权代表签字:_____________日期:____年__月__日乙方(盖章):_____________授权代表签字:_____________日期:____年__月__日。
2023微信策划方案15篇
2023微信策划方案15篇微信策划方案1微信用户突破4.6亿,占据移动互联网的80%的流量入口________。
移动应用正在成为人们获取资讯和生活服务的第一入口,正加速向“智能移动终端的移动互联网模式迁移。
移动互联网时代,抢占用户的手机桌面,就是未来的主流。
传统互联网抢占渠道是通过企业,移动互联网时代,需要的就是基于微信的手机,也就是手机版本的webapp。
微信使用人数数据:据非正式公布的信息,微信用户男性占了63%,20-30岁之间的青年占了74%。
所以把握住了微信,就等于把握住了客户。
针对汽车行业竞争激烈,宣传成本高,用户流失量大,用户投诉多等一系列问题,微信海团队精心为汽车行业打造了一套汽车行业专属解决方案。
从微、微应用、微活动、微会员卡、微客服这五大模块完美解决汽车行业所面临的各种难题。
一、微——汽车行业门户:汽车行业的移动互联网门户建设,包括车型介绍、优惠活动、预约试驾、附近4S店、一键导航、一键拨号等全方位展示功能,将汽车品牌信息、服务全面具体展示在微信端,为消费者提供有价值的资讯,消费者在微信上能了解到足够全的信息,满足消费者的需要。
同时一键导航功能指引消费者就近到店试驾,促成购买,一键拨号功能解决消费者记不住电话号码的难题。
同时,微页面下方还开启了分享、评论功能,用户可以把自己喜欢的车型信息分享到腾讯微博、新浪微博、朋友圈、人人网等社交媒体,让更多的用户看到,获得更大的曝光率。
同时,评论功能为用户提供了发现喜欢同款车型的.好友及畅谈空间,车友们聚集在一块,增强了用户活跃度以及用户对官方微信的黏性。
二、微活动——刮刮卡、大转盘你还在为传统的活动方式参与用户少而烦恼吗?微信海云平台针对汽车行业研发的刮刮卡、大转盘,新奇好玩,而且参与方式简单,能够快速的吸引新用户关注并且参与,定期举行微信活动还能促进消费者对4S店的好感度,最终将消费者吸引到店里来购买。
并且通过定期的微信营销活动赠送给老顾客一些礼品,维系和老顾客之间的关系,增加老顾客对该店的忠诚度,老顾客在升级换代、二次购车的时候再次光顾该店,有时还会推荐给身边的亲朋好友,再次促进销售。
医院微信营销方案(3篇)
医院微信营销方案(3篇)医院微信营销方案(精选3篇)医院微信营销方案篇1现如今民营医院网络营销,日益盛行,大型的医院一般都是做传统的电视广告,这样效果比较直接。
但毕竟做电视广告成本还是很高的,对于一些民营医院来说也是个不小的问题,所以民营医院进行网络营销无疑是最好的选择。
今年以来在中小企业开展比较火的微信营销大家再熟悉不过了,不少民营医院也快速参与其中,经过调查发现,多数民营企业在做微信营销时,都只是简单地注册了一个公众账号,更谈不上运营了,即便是那些通过认证的微信公众账号,也只是简单是信息推送,没有真正弄懂微信营销。
那么如何利用微信营销,扩大医院的影响力呢?一、信息认证策略。
作为一家医院一定要尽快通过认证,这样能提高医院的信任度,同时可以帮助医院带来更多的潜在顾客。
因为有很多想尝鲜的顾客,会通过微信搜索“医院”这个关键词。
医院要通过认证并不难,邀请老顾客加关注微信,再加上医院的`工作人员邀请亲朋、好友一起来关注医院公众平台,就可以快速通过认证。
二、自动回复策略。
医院的公众账号需要满足潜在顾客的核心需求。
通过关键词自动回复功能,潜在顾客可以迅速找到自己想了解的内容。
可以解决大家生活中遇到的健康问题,比如有人身体不适,就可以通过医院的公众账号咨询得到就医的建议。
再比如遇到打电话不便开口的问题,也可以用微信询问了解。
还有一部分人群不顾自身健康,甚至是顾不上自身健康的,可以推送健康知识、适当地教育顾客,可以放大顾客的潜在需求,凸显医院的价值。
这是一个慢慢培养的过程,一步一步的建立与顾客之间的信任关系,这样再推送一些医院的正面信息比如这家医院都有哪些专家?医院的环境怎样?医院的地址在哪?医院的联系方式是什么?这样才能使效果最大化。
三、推送内容策略。
微信公众账号的内容是比较重要的,内容以精为主,要足够吸引人,不要每天大量推送没有价值的信息,这反倒引起顾客的反感。
医院公众账号可以先普及一些健康知识,可以做好规划从健康知识入手,因为医院不同于个体企业,内容可以以伪原创为主,提前做好规划,才能每一步都走稳,如果能与顾客互动就再好不过了,公众账号有一个好处,就是可以打造一个和顾客快速沟通互动的平台。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
微信数据库分析与设计一、需求分析微信作为当前的主要即时通讯工具之一,有着广泛的应用。
其主要的功能是实现即时通信,这也是微信的核心功能。
此外还有查看朋友圈动态、搜索好友、管理个人信息、建立用户自己的相册、收藏功能、摇一摇、搜索附近的人、购物、游戏等功能。
此次对于微信平台的数据库设计主要对部分需要微信平台提供存储信息功能进行需求分析及设计。
以下将对微信平台的主要需求做简要的分析并且根据分析做出数据流图使得对于微信平台数据库的设计有更好的理解。
微信的通信主要包括与微信好友进行相互通信,这其中通信内容包括文字、语音、图片及视频。
当用户订阅了公众号之后,会接收公众号发送的消息并且也可向公众号发信息或许其提供的信息。
微信通信功能的另一个主要方面是实现群聊。
用户可以加入一个微信群进行群。
另一方面用户也可以选择自己的联系人进行群聊。
微信中通讯录实现了保存用户联系人的目的,并且订阅的公众号也保存于通讯录中,并且在通讯录中可以设定标签来为联系人分组。
微信朋友圈保存好友发送的与朋友共享的消息,其内容可为文字、图片、视频。
在朋友圈中可以设定权限使得不同权限的用户查看的内容不一样。
摇一摇功能可以获取同一时刻一起摇动手机的用户,并且暂存于微信中。
附近的人功能可以识别在一定范围内的微信用户,并且将获得的用户信息也暂存在微信中,对于识别附近的用户可以设定具体的条件来扫描。
漂流瓶功能相当于随机的获取微信消息或者向微信用户随机的发送消息。
对于个人信息的编辑,用户可以根据自身需要编辑一些所需的个人信息。
最后在微信用户个人信息中有相册和收藏记录用户的照片和收藏的文字语音等信息。
以上是对微信的部分功能的需求分析,现根据以上需求对微信数据库画出数据流图:第0层DFD:第1层DFD:二、概念设计在第一步的需求分析中,我们了解了微信数据库平台设计中所需要的实体及需要存储的信息。
在概念设计中将进一步明确数据库设计所需实体,实体所具有的属性及实体之间的关系。
通过分析微信数据库平台所需实体主要有:用户信息、普通消息记录、公众号信息、公众号消息记录、微信群信息、群聊消息记录、收藏信息、相册、朋友圈信息、联系人信息、附近人信息、漂流瓶信息、扫一扫信息、摇一摇信息。
这些实体分别对应于微信功能的不同模块。
在实现微信的通信功能主要是使用用户信息、普通消息记录、微信群信息、群聊消息记录和联系人信息这几个实体。
在明确所需实体后根据实际需要对于每个实体设置符合实际情况的属性,每个属性对应了数据库中的具体属性。
下图是根据对于微信数据库平台的需求分析做出的CDM,通过此概念模型显示数据库之间各实体之间的相互关系及各个实体所具有的实际属性。
三、逻辑设计由以上概念设计模型,我们可以获得以下逻辑数据模型(LDM)。
在LDM中对于CDM进行了进一步的细化和具体化,对其中的实体之间的关系在逻辑上进一步的进行了明确。
在此基础上我们获得更加具体能直接反映数据库涉及的无理数据模型(PDM)。
通过PDM将具体显示数据库所需的表及其之间的关系。
PDM如下图所示:在PDM中显示了个表单之间的引用关系,其具体引用如下表:标间关系名称父表格子表格关注用户信息关注关注公众号信息关注发送公众号信息公众号消息记录发送/接收用户信息普通消息记录发送消息用户信息群聊消息记录收藏用户信息收藏信息查看联系人信息普通消息记录用户存放用户信息摇一摇信息用户所在群用户信息用户所在群用户所在群微信群信息用户所在群用户所属用户信息漂流瓶信息用户扫描获得用户信息扫一扫信息用户相册用户信息相册用户联系人用户信息联系人信息群聊天记录微信群信息群聊消息记录联系人相册联系人信息相册获取用户信息附近人信息本系统中使用的表单如下所示:1、用户信息表Name Data Type Length P(主键)F(外键)M(不可为空)用户ID char(15) 15 X X昵称char(20) 20 X头像long binary二维码名片 long binary X我的地址varchar(100) 100性别char(5) 5 X地区varchar(20) 20 X个性签名varchar(500) 500登陆密码varchar(20) 20 X2、普通消息记录表Name Data Type Length P F M消息ID char(20) 20 X X联系人ID char(15) 15 X用户ID char(15) 15 X内容varchar(5000) 5,000 X发送时间datetime X3、联系人表Name Data Type Length P F M 朋友ID char(20) 20 X X 用户ID char(15) 15 X备注名称char(20) 20 X 标签varchar(20) 204、公众号信息表Name Data Type Length P F M 公众号ID char(20) 20 X X 公众号名称 char(40) 40 X5、公众号消息记录表Name Data Type Length P F M 公众消息ID char(20) 20 X X 公众号ID char(20) 20 X公众消息varchar(5000) 5,000 X 订阅者varchar(8000) 8,000 X 发送时间timestamp X6、关注表Name Data Type Length P F M 用户ID char(15) 15 X X X 公众号ID char(20) 20 X X X7、微信群信息表Name Data Type Length P F M 群ID char(20) 20 X X 群名称char(20) 20 X 群二维码long binary X 群成员varchar(1000) 1,000 X8、用户所在群表Name Data Type Length P F M 用户ID char(15) 15 X X X 群ID char(20) 20 X X X9、群聊消息记录表Name Data Type Length P F M 群聊消息ID char(20) 20 X X群ID char(20) 20 X发送人char(20) 20 X 发送时间timestamp X 内容varchar(5000) 5,000 X10、相册表Name Data Type Length P F M 相册ID char(20) 20 X X 用户ID char(15) 15 X联系人ID char(20) 20 X存放时间timestamp X 内容varchar(5000) 5,000 X11、收藏信息表Name Data Type Length P F M 收藏ID char(20) 20 X X 用户ID char(15) 15 X收藏时间timestamp收藏内容varchar(8000) 8,00012、附近人信息表Name Data Type Length P F M 附近人ID char(20) 20 X X 用户ID char(15) 15 X昵称char(20) 20 X 距离integer性别char(5) 5地区varchar(20) 20个性签名varchar(500) 50013、摇一摇信息表Name Data Type Length P F M 摇一摇信息char(20) 20 X X ID用户ID char(15) 15 X时间timestamp内容varchar(5000) 5,00014、扫一扫信息表Name Data Type Length P F M扫一扫信息char(20) 20 X XID用户ID char(15) 15 X时间timestamp内容varchar(5000) 5,000 X15、漂流瓶信息表Name Data Type Length P F M漂流瓶ID char(20) 20 X X用户ID char(15) 15 X内容varchar(5000) 5,000 X对于微信数据库平台的逻辑分析,明确了在具体是实现时所需的表及其各个表之间的引用关系,在接下来的物理设计中将使用逻辑设计中的表在具体数据库实现微信数据库平台的设计。
四、物理设计在此次物理实现微信数据库平台使用SQL Server 2008。
实现简单的微信平台的数据库,通过在数据库表中插入数据或查看数据来表现微信平台对信息的发送接收及查看。
在此次物理实现是我们遵循3NF。
数据库设计如下图:1、向“用户信息”表添加记录,模拟微信在线用户。
此次添加三个用户作为模拟的微信用户。
用户基本信息如下:2、我们选取“小a”登陆微信,开始添加联系人。
“联系人”表保存每个用户的联系人信息,这些联系人信息皆来自用户信息表。
“小a”的联系人如下表:此表的创建过程如下:3、普通用户发送消息时,消息内容将存储在“普通消息记录”表中,如现在“小a”向“小b”发送一条消息,然后“小b”再回复一条。
“小a”也向“小c”发送一条消息。
其中表中的外键约束和默认值如下:在”普通消息记录表”中也可以查询两个用户之间的聊天记录,如查询“小a”和”小b“之间的聊天记录:同样也可以在“普通消消息记录表”中实现删除消息记录。
在“普通消息记录”表中为了能使用户更快的查询自己的消息记录,这里创建了索引。
4、“微信群信息”表中记录了所有用户创建的微信群的信息。
由于在微信中群成员数量当前限制为40个,在本平台中我们设置为4个。
并且每一个成员信息由外键引用自“用户信息”表。
比如现在创建了两个个微信群如下:外键约束和非空约束如下:由于当用户创建了一个微信群后要在“用户所在群”表中显示出每个用户所在的群,因此需创建一个触发器。
在此创建的trigger为“用户信息新增”。
代码如下:5、“用户所在群”表存储了每个用户所在的群信。
每个用户可根据此表查询所在群信息。
当一个微信群被创建后在“用户所在群”表中将自动显示用户所在群信息。
6、“群聊消息记录表”记录了每个群的消息。
也可以查询历史记录。
比如在群“羽毛球部落”中的消息记录。
为了使得用户在查询群历史消息时更加快速,创建索引。
7、“公众号信息”表记录了所有公众号的信息。
可以通过搜索公共号ID或名称来订阅公众号。
8、“关注”表中,存储了每个用户订阅的公众号。
9、“公众号消息记录”存储公众号为订阅者发送的消息。
10、其余各表分别存储每个用户在微信中的信息,通过外键引用来确定每个表中各个用户的信息,其具体结构如下:以上即为微信数据库平台的简单的物理设计,在具体物理设计实现时根据具体需要对数据路平台的逻辑设计进行了部分修改,也更加具体化了数据库功能。
本数据库只是简单的对微信平台数据库的实现,其中还存在许多不足和缺陷需进一步完善。