Heim  >  Artikel  >  WeChat-Applet  >  asp.net-Entwicklung des Datenbankdesigns der öffentlichen WeChat-Plattform (1).

asp.net-Entwicklung des Datenbankdesigns der öffentlichen WeChat-Plattform (1).

高洛峰
高洛峰Original
2017-02-14 11:54:592094Durchsuche

Bevor Sie die öffentliche WeChat-Plattform entwickeln, besuchen Sie zunächst die offizielle WeChat-Website, um die allgemeine Situation hier zu verstehen: http://mp.weixin.qq.com/wiki/index.php. Nachdem Sie sie gelesen haben, haben Sie eine grobe Übersicht Überlegen Sie, was Sie können, und beginnen Sie mit dem Entwurf der Datenbank. Was Sie nicht bedacht haben, wird später hinzugefügt.

1. Gemäß der offiziellen Benutzeroberfläche von WeChat besteht der Benutzerteil aus drei Tabellen: Benutzertabelle, Benutzerinformationstabelle und Benutzergruppierungstabelle :

asp.net-Entwicklung des Datenbankdesigns der öffentlichen WeChat-Plattform (1).

2. Nachdem der Benutzer es entworfen hat, gibt es den Artikelteil, einschließlich: Artikelklassifizierungstabelle und Artikeltabelle. Das Design ist wie folgt:

asp.net-Entwicklung des Datenbankdesigns der öffentlichen WeChat-Plattform (1).

3. Ja Mit der benutzerbezogenen Tabelle können wir Benutzer speichern. Mit der Tabelle des Artikelmoduls können wir Artikel abfragen und sie basierend auf den vom Benutzer eingegebenen Informationen zurückgeben. Geben Sie Text, Grafiken, Bilder, Musik, Video, Sprache usw. zurück. In der tatsächlichen Anwendung gibt es jedoch Situationen, in denen wir bestimmte Schlüsselwörter angeben müssen, um bestimmte Inhalte zurückzugeben. Dann benötigen wir ein spezielles spezifisches Schlüsselwortmodul, einschließlich: Schlüsselworttabelle , Schlüsselwort zurückgegebene Inhaltstabelle, die Inhaltstabelle sieht hier aus wie im obigen Artikel. Die Tabellen überschneiden sich, dies ist jedoch nicht der Fall. Hier ist der durch bestimmte Schlüsselwörter angegebene Antwortinhalt. Sie können angeben, dass Text, Grafiken oder andere Multimediainformationen zurückgegeben werden sollen. Wenn Multimedia-Informationen zurückgegeben werden, wird der Inhalt in der Dateiadresse gespeichert. Die Artikelinhaltstabelle dient der Abfrage durch den Benutzer und gibt in den meisten Fällen direkt grafische Informationen zurück Dies ist die Anzeigeadresse, die diesem Artikel entspricht. Sie entspricht einer Microsite, sodass die Inhaltstabelle des Artikels und dieses Schlüsselworts separat gestaltet werden, um die Verwaltung zu vereinfachen. Das Design ist wie folgt:

asp.net-Entwicklung des Datenbankdesigns der öffentlichen WeChat-Plattform (1).

4. Nachrichtenaufzeichnung Zeichnen Sie die von Benutzern gesendeten Nachrichten auf, um die spätere Verarbeitung zu erleichtern Wenn Sie dasselbe Schlüsselwort verwenden, wird der Inhalt unter dem entsprechenden Menü zurückgegeben, anstatt dass der Benutzer jedes Mal eine Nachricht mit der entsprechenden Menüoption sendet, um personalisierte Dienste basierend auf den aufgezeichneten Informationen usw. bereitzustellen. Einschließlich einer Aufzeichnungstabelle der von Benutzern gesendeten Nachrichten und einer Aufzeichnungstabelle der an Benutzer geantworteten Nachrichten. Hier wird der Prozess der Aufzeichnung der Kommunikation mit dem Benutzer vollständig wiederhergestellt Müssen vom Benutzer gesendete Nachrichten zurückgegeben werden? Die Nachricht wird vom Unternehmen im Projektcode bestimmt. Das Design ist wie folgt:

asp.net-Entwicklung des Datenbankdesigns der öffentlichen WeChat-Plattform (1).

5. Benutzerdefiniertes Menü: Erstellen und verwalten Sie das benutzerdefinierte Menü auf der öffentlichen WeChat-Plattform. Das Design ist wie folgt:

asp.net-Entwicklung des Datenbankdesigns der öffentlichen WeChat-Plattform (1).

6. Andere basieren auf tatsächlichen Projekten, wie z. B. Benutzeranalysen, Zugriffsstatistiken usw., die hier nicht entwickelt werden.

Einige der oben genannten Designs sind nicht in die Datenbank integriert, z. B. der Antwortnachrichtentyp im Schlüsselwortmodul und der Nachrichtentyp im Nachrichtendatensatz. Dabei handelt es sich um eine kleine Anzahl einzelner Optionen, die festgelegt sind von Tencent). Für Daten im Formular verwenden wir andere Methoden, um sie in bestimmten Projekten zu implementieren (feste Statik, Konfigurationsdateien, Cache usw.), ohne eine Datenbank zu entwerfen.

Das vollständige Design sieht wie folgt aus: (Der Einfachheit halber habe ich die Tabellen jedes Moduls gezogen, um sie abzudecken)

asp.net-Entwicklung des Datenbankdesigns der öffentlichen WeChat-Plattform (1).

Laden Sie das Skript herunter als Gehen Sie wie folgt vor: Erstellen Sie in der Datenbank eine Datenbank mit dem Namen WeChat (von mir beim Entwerfen der Datenbank definiert). Das Skript ist nach der Ausführung in Ordnung.

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

Für weitere asp.net-Entwicklung der öffentlichen WeChat-Plattform (1 ) Artikel zum Thema Datenbankdesign, bitte beachten Sie das chinesische PHP-Netz!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn