>위챗 애플릿 >위챗 개발 >asp.net WeChat 공개 플랫폼 개발 (1) 데이터베이스 설계

asp.net WeChat 공개 플랫폼 개발 (1) 데이터베이스 설계

高洛峰
高洛峰원래의
2017-02-14 11:54:592200검색

WeChat 공개 플랫폼을 개발하기 전에 먼저 WeChat 공식 웹 사이트로 이동하여 여기에서 일반적인 상황을 이해하십시오. http://mp.weixin.qq.com/wiki/index.php를 읽은 후 대략적인 내용을 알 수 있습니다. 아이디어를 내고 데이터베이스 설계를 시작하세요. 가능한 것을 고려하고, 고려하지 않은 것은 나중에 추가될 것입니다.

1. 첫 번째는 사용자 부분입니다. WeChat의 공식 인터페이스와 실제 적용에 따르면 사용자 부분에는 사용자 테이블, 사용자 정보 테이블, 사용자 그룹화 테이블의 3개 테이블이 있습니다.

asp.net WeChat 공개 플랫폼 개발 (1) 데이터베이스 설계

2. 사용자가 디자인한 후 기사 분류 테이블과 기사 테이블을 포함하여 디자인은 다음과 같습니다.

asp.net WeChat 공개 플랫폼 개발 (1) 데이터베이스 설계

3. 예 사용자 관련 테이블을 이용하면 기사 모듈의 테이블을 이용하여 사용자가 입력한 정보를 기반으로 기사를 조회하고 반환할 수 있습니다(텍스트 반환, 그래픽, 사진, 음악, 비디오, 음성 등), 그러나 실제 애플리케이션에서는 특정 콘텐츠를 반환하기 위해 특정 키워드를 지정해야 하는 상황이 있으며, 그런 경우에는 키워드 테이블, 반환된 키워드를 포함하는 특별한 특정 키워드 모듈이 필요합니다. 콘텐츠 테이블, 여기의 콘텐츠 테이블은 위 기사와 같습니다. 테이블이 겹치지만 그렇지 않습니다. 여기서는 특정 키워드로 지정된 응답 콘텐츠를 지정하여 멀티미디어 정보를 반환할 수 있습니다. 위의 기사 내용 테이블은 사용자가 조회할 수 있는 표준이며 대부분의 경우 그래픽 정보가 링크를 클릭하면 직접 반환됩니다. 본 기사에 해당하는 표시 주소입니다. 마이크로사이트와 동일하므로 기사의 콘텐츠 테이블과 본 키워드를 별도로 설계하여 보다 쉽게 ​​관리할 수 있습니다. 디자인은 다음과 같습니다.

asp.net WeChat 공개 플랫폼 개발 (1) 데이터베이스 설계

4. 메시지 녹음. 예를 들어 사용자가 보낸 마지막 이벤트 메시지를 기반으로 사용자가 보낸 메시지를 녹음합니다. , 동일한 키워드를 사용할 경우, 사용자가 매번 해당 메뉴 옵션으로 메시지를 보내는 대신, 기록된 정보 등을 바탕으로 맞춤형 서비스를 제공합니다. 사용자가 보낸 메시지의 기록 테이블과 사용자에게 응답한 메시지의 기록 테이블을 포함합니다. 이를 통해 사용자와의 대화를 완전히 복원할 수 있습니다. 사용자가 보낸 메시지를 반환해야 합니까? 메시지는 프로젝트 코드의 비즈니스에 의해 결정됩니다. 디자인은 다음과 같습니다:

asp.net WeChat 공개 플랫폼 개발 (1) 데이터베이스 설계

5. 사용자 정의 메뉴, WeChat 공개 플랫폼에서 사용자 정의 메뉴를 생성 및 관리합니다. 디자인은 다음과 같습니다.

asp.net WeChat 공개 플랫폼 개발 (1) 데이터베이스 설계

6. 기타 사용자 분석, 사용자 포인트 관련 접속 통계 등 실제 프로젝트를 기반으로 설계되었으며 여기서는 설계되지 않습니다.

위의 디자인 중 일부는 키워드 모듈의 응답 메시지 유형 및 메시지 레코드의 메시지 유형과 같이 데이터베이스에 설계되지 않았습니다. 이는 고정된 소수의 단일 옵션입니다(결정됨). 형식의 데이터에 대해서는 데이터베이스를 설계하지 않고 다른 방법을 사용하여 특정 프로젝트(고정 정적, 구성 파일, 캐시 등)에 구현합니다.

완성된 디자인은 다음과 같습니다. (스크린샷의 편의를 위해 각 모듈의 표를 드래그하여 덮었습니다.)

asp.net WeChat 공개 플랫폼 개발 (1) 데이터베이스 설계

스크립트를 다음과 같이 다운로드합니다. 다음: 데이터베이스에 WeChat이라는 데이터베이스를 만듭니다(데이터베이스를 설계할 때 직접 정의함). 스크립트는 실행되면 괜찮습니다.

use  weixin -------微信公众平台
if exists ( select *  from  sysobjects where name = 'tb_User' and xtype='U') 
drop table tb_User
create table  tb_User------------------------------------------------------------用户表
(
  ID               int              primary key identity(1,1)       NOT NULL , --主键-主键
  InId             int              default  0                      NOT NULL , --自有系统的用户ID
  OpenId           varchar(150)     default ''                      NOT NULL , --微信openid
  Group            int              default  0                      NOT NULL , --分组ID
  NickName         varchar(50)      default ''                      NOT NULL , --昵称-微信
  CreateTime       datetime         default  getdate()              NOT NULL , --创建时间
  State            int              default  1                      NOT NULL , --状态-1为正常
  PreFirst         varchar(150)     default ''                      NOT NULL , --预留字段1
);


if exists ( select *  from  sysobjects where name = 'tb_Group' and xtype='U') 
drop table tb_Group
create table  tb_Group-----------------------------------------------------------分组表
(
  ID               int              primary key identity(1,1)       NOT NULL , --主键-主键
  Name             varchar(50)      default ''                      NOT NULL , --名称-本地
  WeiId            int              default  0                      NOT NULL , --对应微信分组ID
  WeiName          varchar(50)      default ''                      NOT NULL , --微信分组名
  Note             varchar(100)     default ''                      NOT NULL , --备注
  CreateTime       datetime         default  getdate()              NOT NULL , --创建时间
  State            int              default  1                      NOT NULL , --状态
);


if exists ( select *  from  sysobjects where name = 'tb_UserData' and xtype='U') 
drop table tb_UserData
create table  tb_UserData--------------------------------------------------------用户资料表
(
  ID               int              primary key identity(1,1)       NOT NULL , --主键-主键
  UserId           int              default  0                      NOT NULL , --用户表主键
  Sex              int              default  0                      NOT NULL , --性别0未知1男2女
  City             varchar(20)      default ''                      NOT NULL , --城市
  Country          varchar(30)      default ''                      NOT NULL , --国家
  Province         varchar(20)      default ''                      NOT NULL , --省份
  Language         varchar(15)      default ''                      NOT NULL , --语言
  HeadImgUrl       varchar(250)     default ''                      NOT NULL , --用户头像
  SubTime          varchar(50)      default ''                      NOT NULL , --最后次关注时间戳
  CreateTime       datetime         default  getdate()              NOT NULL , --创建时间
  State            int              default  1                      NOT NULL , --状态
  PreFirst         varchar(150)     default ''                      NOT NULL , --预留1
);


if exists ( select *  from  sysobjects where name = 'tb_Article' and xtype='U') 
drop table tb_Article
create table  tb_Article---------------------------------------------------------文章表
(
  ID               int              primary key identity(1,1)       NOT NULL , --主键-主键
  SortId           int              default  0                      NOT NULL , --类别ID
  ITop             int              default  0                      NOT NULL , --置顶0不1是
  TopBeginTime     datetime         default  getdate()              NOT NULL , --置顶开始时间
  TopEndTime       datetime         default  getdate()              NOT NULL , --置顶结束时间
  Title            varchar(100)     default ''                      NOT NULL , --标题
  KeyWorld         varchar(150)     default ''                      NOT NULL , --关键字
  Summary          varchar(680)     default ''                      NOT NULL , --简介//680为微信文字上限左右
  Content          ntext            default ''                      NOT NULL , --内容
  Source           varchar(50)      default  '独家原创'                 NOT NULL , --来源
  CreateTime       datetime         default  getdate()              NOT NULL , --创建时间
  PublishTime      datetime         default  getdate()              NOT NULL , --发布时间
  AOrder           int              default  99                     NOT NULL , --排序
  State            int              default  1                      NOT NULL , --状态
  MinImg           varchar(350)     default ''                      NOT NULL , --缩略图
);


if exists ( select *  from  sysobjects where name = 'tb_ArtSort' and xtype='U') 
drop table tb_ArtSort
create table  tb_ArtSort---------------------------------------------------------文章分类表
(
  ID               int              primary key identity(1,1)       NOT NULL , --主键-主键
  Name             varchar(50)      default ''                      NOT NULL , --名称
  ParentId         int              default  0                      NOT NULL , --父级ID
  IndexLevel       int              default  1                      NOT NULL , --当前级别
  SOrder           int              default  99                     NOT NULL , --排序
  State            int              default  1                      NOT NULL , --状态
  Note             varchar(150)     default ''                      NOT NULL , --备注
);


if exists ( select *  from  sysobjects where name = 'tb_KeyWord' and xtype='U') 
drop table tb_KeyWord
create table  tb_KeyWord---------------------------------------------------------关键字表
(
  ID               int              primary key identity(1,1)       NOT NULL , --主键-主键
  Name             varchar(50)      default ''                      NOT NULL , --名称
  Note             varchar(250)     default ''                      NOT NULL , --备注
  State            int              default  1                      NOT NULL , --状态
  CreateTime       datetime         default  getdate()              NOT NULL , --创建时间
  ReType           int              default  1                      NOT NULL , --回复消息类型1为文本
);


if exists ( select *  from  sysobjects where name = 'tb_KeyContent' and xtype='U') 
drop table tb_KeyContent
create table  tb_KeyContent------------------------------------------------------关键字返回内容表
(
  ID               int              primary key identity(1,1)       NOT NULL , --主键-主键
  Title            varchar(150)     default ''                      NOT NULL , --标题
  Content          varchar(700)     default ''                      NOT NULL , --内容
  KeyId            int              default  0                      NOT NULL , --关键字ID
  Type             int              default  1                      NOT NULL , --类型-文本图文等
  MinImg           varchar(250)     default ''                      NOT NULL , --图片
  ITop             int              default  0                      NOT NULL , --置顶
  TopBeginTime     datetime         default  getdate()              NOT NULL , --置顶开始时间
  TopEndTime       datetime         default  getdate()              NOT NULL , --置顶结束时间
  CreateTime       datetime         default  getdate()              NOT NULL , --创建时间
  State            int              default  1                      NOT NULL , --状态
  Href             varchar(250)     default  '#'                    NOT NULL , --图文时点开的链接
);


if exists ( select *  from  sysobjects where name = 'tb_UserMsg' and xtype='U') 
drop table tb_UserMsg
create table  tb_UserMsg---------------------------------------------------------用户消息记录表
(
  ID               int              primary key identity(1,1)       NOT NULL , --主键-主键
  MsgType          int              default  1                      NOT NULL , --消息类型文本、事件
  EventId          int              default  1                      NOT NULL , --事件ID//自定义菜单的ID
  Content          varchar(700)     default ''                      NOT NULL , --消息内容
  CreateTime       datetime         default  getdate()              NOT NULL , --创建时间
  State            int              default  1                      NOT NULL , --状态
  ReState          int              default  0                      NOT NULL , --回复状态
  WeiMsgId         varchar(50)      default ''                      NOT NULL , --微信消息ID
  UserId           int              default  0                      NOT NULL , --用户表主键
);


if exists ( select *  from  sysobjects where name = 'tb_245' and xtype='U') 
drop table tb_245
create table  tb_245-------------------------------------------------------------回复消息表
(
  ID               int              primary key identity(1,1)       NOT NULL , --主键-主键
  UserId           int              default  0                      NOT NULL , --用户表主键
  MsgID            int              default  0                      NOT NULL , --消息表主键
  ReType           int              default  1                      NOT NULL , --回复类型//文本图文
  ReFrom           int              default  1                      NOT NULL , --回复点//1文章2关键词
  ReContentId      varchar(80)      default  '0,'                   NOT NULL , --回复的内容ID串
  CreateTime       datetime         default  getdate()              NOT NULL , --回复记录时间
);


if exists ( select *  from  sysobjects where name = 'tb_PersonalMenu' and xtype='U') 
drop table tb_PersonalMenu
create table  tb_PersonalMenu----------------------------------------------------自定义菜单表
(
  ID               int              primary key identity(1,1)       NOT NULL , --主键-主键
  Name             varchar(50)      default ''                      NOT NULL , --名称
  Type             int              default  1                      NOT NULL , --类型1click2view
  ParentId         int              default  0                      NOT NULL , --父级ID
  IndexLevel       int              default  1                      NOT NULL , --当前级别
  LinkUrl          varchar(350)     default  '#'                    NOT NULL , --链接地址view时用
  CreateTime       datetime         default  getdate()              NOT NULL , --创建时间
  POrder           int              default  99                     NOT NULL , --排序
  State            int              default  1                      NOT NULL , --状态
  Note             varchar(150)     default ''                      NOT NULL , --备注
);

더 많은 asp.net 개발을 위해 WeChat 공개 플랫폼 (1) 데이터베이스 디자인 관련 기사, PHP 중국어 웹사이트를 주목해주세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.