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

2019-05-22 09:44:12刘景俊

前言 

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

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

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

思维导图 

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

 

表结构 

根据思维导图,我们可以建立的表可以是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]