溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

asp.net開發微信公眾平臺之數據庫設計的示例分析

發布時間:2021-09-06 15:47:36 來源:億速云 閱讀:222 作者:小新 欄目:移動開發

這篇文章給大家分享的是有關asp.net開發微信公眾平臺之數據庫設計的示例分析的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

1、首先是用戶部分,根據微信官方的接口結合實際運用,用戶部分有3個表:用戶表、用戶資料表、用戶分組表,我設計的如下:

asp.net開發微信公眾平臺之數據庫設計的示例分析

2、用戶設計好之后就是文章部分,包括:文章分類表、文章表,  設計如下:

asp.net開發微信公眾平臺之數據庫設計的示例分析

3、有了用戶相關的表我們可以保存用戶,有了文章模塊的表我們可以根據用戶輸入的信息查詢文章進行返回(返回文本、圖文、圖片、音樂、視頻、語音等等),但是實際運用中,我們存在需要指定特定的關鍵字返回特定的內容的情況,那么就需要專門的特定關鍵字模塊,  包括:關鍵字表、關鍵字返回的內容表,  這里的內容表看著像是與上面的文章表有重合,實則不然, 這里是特定關鍵字指定的回復內容,可以指定返回文本、圖文或其他多媒體信息,當返回多媒體信息時內容中存入文件地址,  上面的文章表是標準的通用的文章內容表, 供用戶查詢多數情況下直接返回圖文信息,且圖文信息點擊鏈接時就是這篇文章對應的展示地址, 相當于一個微網站,  所以文章和這個關鍵字的內容表分開設計更加方便管理。  設計如下:

asp.net開發微信公眾平臺之數據庫設計的示例分析

4、消息記錄,  把用戶發來的消息進行記錄,方便后續處理,  比如 根據用戶上次發來的事件消息,之后再發同一個關鍵詞時,返回對應菜單下的內容,而不用用戶每次發送消息都帶對應的菜單選項;客服消息根據記錄的信息做個性化的服務 等等。   包括:用戶發來的消息記錄表、回復給用戶的消息記錄表  ,有了這些可以完整的還原和用戶的對話,這里是記錄和用戶交流的過程,具體用戶發來的消息需要返回什么樣的消息,由項目代碼中業務決定。   設計如下:

asp.net開發微信公眾平臺之數據庫設計的示例分析

5、自定義菜單,創建和管理微信公眾平臺中的自定義菜單,設計如下:

asp.net開發微信公眾平臺之數據庫設計的示例分析

6、其他,  具體根據做的實際項目來設計, 比如 用戶分析、訪問統計;   用戶積分;  二維碼相關 等等 ,  此處先不設計。

以上設計中,有一些是沒有設計到數據庫的, 比如關鍵字模塊中的回復消息類型、消息記錄中的消息類型,  這些固定不變(由騰訊決定)的少量的單選項形式的數據,我們在具體項目中使用其他方法來實現(固定靜態、配置文件、緩存等),無需設計數據庫。

完整設計如下:(為了方便截圖 ,我把各個模塊的表拖動覆蓋了)

asp.net開發微信公眾平臺之數據庫設計的示例分析

下載腳本,如下:在數據庫中創建一個名為微信(設計數據庫時自己定義的)的數據庫,腳本執行一下就OK,

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開發微信公眾平臺之數據庫設計的示例分析”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女