Maison  >  Article  >  Applet WeChat  >  asp.net développement de la conception de la base de données de la plateforme publique WeChat (1)

asp.net développement de la conception de la base de données de la plateforme publique WeChat (1)

高洛峰
高洛峰original
2017-02-14 11:54:592142parcourir

Avant de développer la plateforme publique WeChat, rendez-vous d'abord sur le site officiel de WeChat pour comprendre la situation générale ici : http://mp.weixin.qq.com/wiki/index.php après l'avoir lu, vous avez une idée approximative ; idée et commencez à concevoir la base de données. Réfléchissez à ce que vous pouvez, et ce que vous n’avez pas envisagé sera ajouté plus tard.

1. La première est la partie utilisateur. Selon l'interface officielle de WeChat combinée à une application pratique, la partie utilisateur comporte 3 tables : table utilisateur, table d'informations utilisateur, table de regroupement des utilisateurs. :

asp.net développement de la conception de la base de données de la plateforme publique WeChat (1)

2. Une fois que l'utilisateur l'a conçu, il y a la partie article, comprenant : le tableau de classification des articles et le tableau des articles. La conception est la suivante :

asp.net développement de la conception de la base de données de la plateforme publique WeChat (1)

3. Oui Avec la table relative à l'utilisateur, nous pouvons enregistrer les utilisateurs. Avec la table du module article, nous pouvons interroger les articles et les renvoyer en fonction des informations saisies par l'utilisateur (. renvoyer du texte, des graphiques, des images, de la musique, des vidéos, de la voix, etc.), mais dans l'application réelle, il existe des situations où nous devons spécifier des mots-clés spécifiques pour renvoyer un contenu spécifique, nous avons alors besoin d'un module de mots-clés spécifique spécial, comprenant : une table de mots-clés , table de contenu renvoyée par mot-clé, la table de contenu ressemble ici à l'article ci-dessus. Les tableaux se chevauchent, mais ce n'est pas le cas. Voici le contenu de la réponse spécifié par des mots-clés spécifiques. Vous pouvez spécifier de renvoyer du texte, des graphiques ou d'autres informations multimédias. Lorsque les informations multimédia sont renvoyées, le contenu est stocké dans l'adresse du fichier. La table de contenu d'article ci-dessus est standard et universelle. La table de contenu d'article est destinée aux utilisateurs et renvoie dans la plupart des cas directement des informations graphiques lorsque les informations graphiques cliquent sur le lien. , c'est l'adresse d'affichage correspondant à cet article. C'est l'équivalent d'un microsite, donc le tableau du contenu de l'article et ce mot-clé sont conçus séparément pour le rendre plus pratique à gérer. La conception est la suivante :

asp.net développement de la conception de la base de données de la plateforme publique WeChat (1)

4. Enregistrement des messages envoyés par les utilisateurs pour faciliter le traitement ultérieur. Par exemple, en fonction du dernier message d'événement envoyé par l'utilisateur. , envoyez-le plus tard Lorsque vous utilisez le même mot-clé, le contenu du menu correspondant est renvoyé, au lieu que l'utilisateur envoie à chaque fois un message avec l'option de menu correspondante ; les messages du service client fournissent des services personnalisés basés sur les informations enregistrées, etc. Y compris : un tableau d'enregistrement des messages envoyés par les utilisateurs et un tableau d'enregistrement des messages répondus aux utilisateurs. Avec ceux-ci, la conversation avec l'utilisateur peut être complètement restaurée. Voici le processus d'enregistrement de la communication avec l'utilisateur. les messages envoyés par l'utilisateur doivent-ils être renvoyés ? Le message est déterminé par l'entreprise dans le code du projet. La conception est la suivante :

asp.net développement de la conception de la base de données de la plateforme publique WeChat (1)

5. Menu personnalisé, créez et gérez le menu personnalisé dans la plateforme publique WeChat, la conception est la suivante :

asp.net développement de la conception de la base de données de la plateforme publique WeChat (1)

6. D'autres sont conçus sur la base de projets réels, tels que l'analyse des utilisateurs, les statistiques d'accès ; les points utilisateur liés au code QR, etc., qui ne seront pas conçus ici.

Certaines des conceptions ci-dessus ne sont pas conçues dans la base de données, comme le type de message de réponse dans le module de mots-clés et le type de message dans l'enregistrement du message. Il s'agit d'un petit nombre d'options uniques qui sont fixes (déterminées). par Tencent). Pour les données sous forme, nous utilisons d'autres méthodes pour les implémenter dans des projets spécifiques (statique fixe, fichiers de configuration, cache, etc.) sans concevoir de base de données.

La conception complète est la suivante : (Pour faciliter les captures d'écran, j'ai fait glisser les tableaux de chaque module pour les recouvrir)

asp.net développement de la conception de la base de données de la plateforme publique WeChat (1)

Téléchargez le script comme suit : Créer dans la base de données Une base de données nommée WeChat (définie par moi-même lors de la conception de la base de données), le script sera OK après l'avoir exécuté,

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 , --备注
);

Pour plus de développement asp.net de la plateforme publique WeChat (1 ) articles liés à la conception de bases de données, veuillez faire attention au réseau chinois PHP !

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn