加入收藏 | 设为首页 | 会员中心 | 我要投稿 济南站长网 (https://www.0531zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

ASP.NET MVC5+EF6+EasyUI后台管理系统 微信公众平台开发之消息管

发布时间:2016-11-24 06:30:56 所属栏目:MsSql教程 来源:站长网
导读:前言 回顾上一节,我们熟悉的了解了消息的请求和响应,这一节我们来建立数据库的表,表的设计蛮复杂 你也可以按自己所分析的情形结构来建表 必须非常熟悉表的结果才能运用这张表,这表表的情形涵盖比较多 思维导图 我这个人比较喜欢用思维导图来分析和表达

前言 

回顾上一节,我们熟悉的了解了消息的请求和响应,这一节我们来建立数据库的表,表的设计蛮复杂 

你也可以按自己所分析的情形结构来建表 

必须非常熟悉表的结果才能运用这张表,这表表的情形涵盖比较多 

思维导图 

我这个人比较喜欢用思维导图来分析和表达一些模型:

ASP.NET MVC5+EF6+EasyUI后台管理系统 微信公众平台开发之消息管 

表结构 

根据思维导图,我们可以建立的表可以是3张表:消息表,规则表,类型表
消息表:实际的消息
规则表:文本、图文、语音等
类型表:文本、图文、语音(默认回复,订阅回复)
也可以是两张表:规制表,消息表(+一个类型字段) 

我这里只设计一张表:消息表(+一个规则字段+一个类型字段) 

设计表结构与个人的平时习惯有关系,我还是喜欢简单的东西,别为了设计而去专门设计,这样只会增加系统的复杂度 

CREATE TABLE [dbo].[WC_MessageResponse](
  [Id] [varchar](50) NOT NULL,       --主键    
  [OfficalAccountId] [varchar](50) NULL,  --所属公众号
  [MessageRule] [int] NULL,         --消息规则(枚举)
  [Category] [int] NULL,          --类型(枚举)
  [MatchKey] [varchar](1000) NULL,     --关键字
  [TextContent] [varchar](max) NULL,    --文本内容
  [ImgTextContext] [varchar](max) NULL,   --图文文本内容
  [ImgTextUrl] [varchar](1000) NULL,    --图文图片URL
  [ImgTextLink] [varchar](1000) NULL,    --图文图片超链接
  [MeidaUrl] [varchar](1000) NULL,     --语音URL
  [MeidaLink] [varchar](1000) NULL,     --语音超链接
  [Enable] [bit] NOT NULL,         --是否启用
  [IsDefault] [bit] NOT NULL,        --是否默认
  [Remark] [varchar](2000) NULL,      --说明
  [Sort] [int] NOT NULL,          --排序
  [CreateTime] [datetime] NOT NULL,     --创建时间
  [CreateBy] [varchar](50) NOT NULL,    --创建人
  [ModifyTime] [datetime] NOT NULL,     --修改时间
  [ModifyBy] [varchar](50) NULL,      --修改人
 CONSTRAINT [PK_WC_MessageResponse] PRIMARY KEY CLUSTERED 
(
  [Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]

GO

SET ANSI_PADDING OFF
GO

ALTER TABLE [dbo].[WC_MessageResponse] WITH CHECK ADD CONSTRAINT [FK_WC_MessageResponse_WC_OfficalAcconts] FOREIGN KEY([OfficalAccountId])
REFERENCES [dbo].[WC_OfficalAccounts] ([Id])
ON DELETE CASCADE
GO

ALTER TABLE [dbo].[WC_MessageResponse] CHECK CONSTRAINT [FK_WC_MessageResponse_WC_OfficalAcconts]
GO

表对应了两个枚举和关联主表公众号管理的主表 

CREATE TABLE [dbo].[WC_OfficalAccounts](
  [Id] [varchar](50) NOT NULL,      --主键
  [OfficalId] [varchar](200) NULL,    --公众号的唯一ID
  [OfficalName] [varchar](200) NOT NULL,  --公众号名称
  [OfficalCode] [varchar](200) NOT NULL, --公众号帐号
  [OfficalPhoto] [varchar](1000) NULL,  --头像
  [OfficalKey] [varchar](500) NULL,    --EncodingAESKey
  [ApiUrl] [varchar](1000) NULL,      --我们的资源服务器
  [Token] [varchar](200) NULL,      --Token
  [AppId] [varchar](200) NULL,      --AppId
  [AppSecret] [varchar](200) NULL,    --Appsecret
  [AccessToken] [varchar](200) NULL,    --访问Token
  [Remark] [varchar](2000) NULL,      --说明
  [Enable] [bit] NOT NULL,        --是否启用
  [IsDefault] [bit] NOT NULL,        --是否为当前默认操作号
  [Category] [int] NOT NULL,        --类别(媒体号,企业号,个人号,开发测试号)
  [CreateTime] [datetime] NOT NULL,    --创建时间
  [CreateBy] [varchar](50) NOT NULL,    --创建人
  [ModifyTime] [datetime] NOT NULL,    --修改时间
  [ModifyBy] [varchar](50) NULL,      --修改人
 CONSTRAINT [PK_WC_OfficalAcconts] PRIMARY KEY CLUSTERED 
(
  [Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]

对应的枚举 

 public enum WeChatReplyCategory
  {
    //文本
    Text =1,
    //图文
    Image =2,
    //语音
    Voice =3,
    //相等,用于回复关键字
    Equal=4,
    //包含,用于回复关键字
    Contain = 5
  }

  public enum WeChatRequestRuleEnum
  {
    /// <summary>
    /// 默认回复,没有处理的
    /// </summary>
    Default =0,
    /// <summary>
    /// 关注回复
    /// </summary>
    Subscriber =1,
    /// <summary>
    /// 文本回复
    /// </summary>
    Text =2,
    /// <summary>
    /// 图片回复
    /// </summary>
    Image =3,
    /// <summary>
    /// 语音回复
    /// </summary>
    Voice =4,
    /// <summary>
    /// 视频回复
    /// </summary>
    Video =5,
    /// <summary>
    /// 超链接回复
    /// </summary>
    Link =6,
    /// <summary>
    /// LBS位置回复
    /// </summary>
    Location =7,
  }

枚举其实对应就是我省掉的其余两张表
 到这里,相信表的设计已经非常清晰 

后台代码 

增删改查非常普通,主要关注点在前端,前端处理提交的消息中,必须包含规则,类型,来指定消息的最终表达

(编辑:济南站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读