重庆小潘seo博客

当前位置:首页 > 重庆网络营销 > 小潘杂谈 >

小潘杂谈

asp.net开发微信公众平台(1)数据库设计

时间:2020-09-09 17:30:04 作者:重庆seo小潘 来源:
开发微信公众平台之前,先去微信官方了解下大概的情况 这里:http://mp.weixin.qq.com/wiki/index.php ;看了之后心里大致有数了,开始设计数据库,尽可能的考虑,未考虑到的,以后再补充。 1、首先是用户部分,根据微信官方的接口结合实际运用,用户部分有3

开发微信公众平台之前,先去微信官方了解下大概的情况 这里:http://mp.weixin.qq.com/wiki/index.php ;看了之后心里大致有数了,开始设计数据库,尽可能的考虑,未考虑到的,以后再补充。

1、首先是用户部分,根据微信官方的接口结合实际运用,用户部分有3个表:用户表、用户资料表、用户分组表,我设计的如下:

asp.net开发微信公众平台(1)数据库设计

2、用户设计好之后就是文章部分,包括:文章分类表、文章表,设计如下:

asp.net开发微信公众平台(1)数据库设计

3、有了用户相关的表我们可以保存用户,有了文章模块的表我们可以根据用户输入的信息查询文章进行返回(返回文本、图文、图片、音乐、视频、语音等等),但是实际运用中,我们存在需要指定特定的关键字返回特定的内容的情况,那么就需要专门的特定关键字模块,包括:关键字表、关键字返回的内容表,这里的内容表看着像是与上面的文章表有重合,实则不然, 这里是特定关键字指定的回复内容,可以指定返回文本、图文或其他多媒体信息,当返回多媒体信息时内容中存入文件地址,上面的文章表是标准的通用的文章内容表, 供用户查询多数情况下直接返回图文信息,且图文信息点击链接时就是这篇文章对应的展示地址, 相当于一个微网站,所以文章和这个关键字的内容表分开设计更加方便管理。设计如下:

asp.net开发微信公众平台(1)数据库设计

4、消息记录,把用户发来的消息进行记录,方便后续处理,比如 根据用户上次发来的事件消息,之后再发同一个关键词时,返回对应菜单下的内容,而不用用户每次发送消息都带对应的菜单选项;客服消息根据记录的信息做个性化的服务 等等。包括:用户发来的消息记录表、回复给用户的消息记录表,有了这些可以完整的还原和用户的对话,这里是记录和用户交流的过程,具体用户发来的消息需要返回什么样的消息,由项目代码中业务决定。设计如下:

asp.net开发微信公众平台(1)数据库设计

5、自定义菜单,创建和管理微信公众平台中的自定义菜单,设计如下:

asp.net开发微信公众平台(1)数据库设计

6、其他,具体根据做的实际项目来设计, 比如 用户分析、访问统计;用户积分;二维码相关 等等 ,此处先不设计。

以上设计中,有一些是没有设计到数据库的, 比如关键字模块中的回复消息类型、消息记录中的消息类型,这些固定不变(由腾讯决定)的少量的单选项形式的数据,我们在具体项目中使用其他方法来实现(固定静态、配置文件、缓存等),无需设计数据库。

完整设计如下:(为了方便截图 ,我把各个模块的表拖动覆盖了)

asp.net开发微信公众平台(1)数据库设计

下载脚本,如下:在数据库中创建一个名为微信(设计数据库时自己定义的)的数据库,脚本执行一下就OK,useweixin -------微信公众平台if exists ( select *fromsysobjects where name = 'tb_User' and xtype='U') drop table tb_Usercreate tabletb_User------------------------------------------------------------用户表(IDintprimary key identity(1,1)NOT NULL , --主键-主键InIdintdefault0NOT NULL , --自有系统的用户IDOpenIdvarchar(150)default ''NOT NULL , --微信openidGroupintdefault0NOT NULL , --分组IDNickNamevarchar(50)default ''NOT NULL , --昵称-微信CreateTimedatetimedefaultgetdate()NOT NULL , --创建时间Stateintdefault1NOT NULL , --状态-1为正常PreFirstvarchar(150)default ''NOT NULL , --预留字段1);if exists ( select *fromsysobjects where name = 'tb_Group' and xtype='U') drop table tb_Groupcreate tabletb_Group-----------------------------------------------------------分组表(IDintprimary key identity(1,1)NOT NULL , --主键-主键Namevarchar(50)default ''NOT NULL , --名称-本地WeiIdintdefault0NOT NULL , --对应微信分组IDWeiNamevarchar(50)default ''NOT NULL , --微信分组名Notevarchar(100)default ''NOT NULL , --备注CreateTimedatetimedefaultgetdate()NOT NULL , --创建时间Stateintdefault1NOT NULL , --状态);if exists ( select *fromsysobjects where name = 'tb_UserData' and xtype='U') drop table tb_UserDatacreate tabletb_UserData--------------------------------------------------------用户资料表(IDintprimary key identity(1,1)NOT NULL , --主键-主键UserIdintdefault0NOT NULL , --用户表主键Sexintdefault0NOT NULL , --性别0未知1男2女Cityvarchar(20)default ''NOT NULL , --城市Countryvarchar(30)default ''NOT NULL , --国家Provincevarchar(20)default ''NOT NULL , --省份Languagevarchar(15)default ''NOT NULL , --语言HeadImgUrlvarchar(250)default ''NOT NULL , --用户头像SubTimevarchar(50)default ''NOT NULL , --最后次关注时间戳CreateTimedatetimedefaultgetdate()NOT NULL , --创建时间Stateintdefault1NOT NULL , --状态PreFirstvarchar(150)default ''NOT NULL , --预留1);if exists ( select *fromsysobjects where name = 'tb_Article' and xtype='U') drop table tb_Articlecreate tabletb_Article---------------------------------------------------------文章表(IDintprimary key identity(1,1)NOT NULL , --主键-主键SortIdintdefault0NOT NULL , --类别IDITopintdefault0NOT NULL , --置顶0不1是TopBeginTimedatetimedefaultgetdate()NOT NULL , --置顶开始时间TopEndTimedatetimedefaultgetdate()NOT NULL , --置顶结束时间Titlevarchar(100)default ''NOT NULL , --标题KeyWorldvarchar(150)default ''NOT NULL , --关键字Summaryvarchar(680)default ''NOT NULL , --简介//680为微信文字上限左右Contentntextdefault ''NOT NULL , --内容Sourcevarchar(50)default'独家原创'NOT NULL , --来源CreateTimedatetimedefaultgetdate()NOT NULL , --创建时间PublishTimedatetimedefaultgetdate()NOT NULL , --发布时间AOrderintdefault99NOT NULL , --排序Stateintdefault1NOT NULL , --状态MinImgvarchar(350)default ''NOT NULL , --缩略图);if exists ( select *fromsysobjects where name = 'tb_ArtSort' and xtype='U') drop table tb_ArtSortcreate tabletb_ArtSort---------------------------------------------------------文章分类表(IDintprimary key identity(1,1)NOT NULL , --主键-主键Namevarchar(50)default ''NOT NULL , --名称ParentIdintdefault0NOT NULL , --父级IDIndexLevelintdefault1NOT NULL , --当前级别SOrderintdefault99NOT NULL , --排序Stateintdefault1NOT NULL , --状态Notevarchar(150)default ''NOT NULL , --备注);if exists ( select *fromsysobjects where name = 'tb_KeyWord' and xtype='U') drop table tb_KeyWordcreate tabletb_KeyWord---------------------------------------------------------关键字表(IDintprimary key identity(1,1)NOT NULL , --主键-主键Namevarchar(50)default ''NOT NULL , --名称Notevarchar(250)default ''NOT NULL , --备注Stateintdefault1NOT NULL , --状态CreateTimedatetimedefaultgetdate()NOT NULL , --创建时间ReTypeintdefault1NOT NULL , --回复消息类型1为文本);if exists ( select *fromsysobjects where name = 'tb_KeyContent' and xtype='U') drop table tb_KeyContentcreate tabletb_KeyContent------------------------------------------------------关键字返回内容表(IDintprimary key identity(1,1)NOT NULL , --主键-主键Titlevarchar(150)default ''NOT NULL , --标题Contentvarchar(700)default ''NOT NULL , --内容KeyIdintdefault0NOT NULL , --关键字IDTypeintdefault1NOT NULL , --类型-文本图文等MinImgvarchar(250)default ''NOT NULL , --图片ITopintdefault0NOT NULL , --置顶TopBeginTimedatetimedefaultgetdate()NOT NULL , --置顶开始时间TopEndTimedatetimedefaultgetdate()NOT NULL , --置顶结束时间CreateTimedatetimedefaultgetdate()NOT NULL , --创建时间Stateintdefault1NOT NULL , --状态Hrefvarchar(250)default'#'NOT NULL , --图文时点开的链接);if exists ( select *fromsysobjects where name = 'tb_UserMsg' and xtype='U') drop table tb_UserMsgcreate tabletb_UserMsg---------------------------------------------------------用户消息记录表(IDintprimary key identity(1,1)NOT NULL , --主键-主键MsgTypeintdefault1NOT NULL , --消息类型文本、事件EventIdintdefault1NOT NULL , --事件ID//自定义菜单的IDContentvarchar(700)default ''NOT NULL , --消息内容CreateTimedatetimedefaultgetdate()NOT NULL , --创建时间Stateintdefault1NOT NULL , --状态ReStateintdefault0NOT NULL , --回复状态WeiMsgIdvarchar(50)default ''NOT NULL , --微信消息IDUserIdintdefault0NOT NULL , --用户表主键);if exists ( select *fromsysobjects where name = 'tb_245' and xtype='U') drop table tb_245create tabletb_245-------------------------------------------------------------回复消息表(IDintprimary key identity(1,1)NOT NULL , --主键-主键UserIdintdefault0NOT NULL , --用户表主键MsgIDintdefault0NOT NULL , --消息表主键ReTypeintdefault1NOT NULL , --回复类型//文本图文ReFromintdefault1NOT NULL , --回复点//1文章2关键词ReContentIdvarchar(80)default'0,'NOT NULL , --回复的内容ID串CreateTimedatetimedefaultgetdate()NOT NULL , --回复记录时间);if exists ( select *fromsysobjects where name = 'tb_PersonalMenu' and xtype='U') drop table tb_PersonalMenucreate tabletb_PersonalMenu----------------------------------------------------自定义菜单表(IDintprimary key identity(1,1)NOT NULL , --主键-主键Namevarchar(50)default ''NOT NULL , --名称Typeintdefault1NOT NULL , --类型1click2viewParentIdintdefault0NOT NULL , --父级IDIndexLevelintdefault1NOT NULL , --当前级别LinkUrlvarchar(350)default'#'NOT NULL , --链接地址view时用CreateTimedatetimedefaultgetdate()NOT NULL , --创建时间POrderintdefault99NOT NULL , --排序Stateintdefault1NOT NULL , --状态Notevarchar(150)default ''NOT NULL , --备注);更多asp.net开发微信公众平台(1)数据库设计相关文章请关注PHP中文网!