asp.net開發(fā)微信公眾平臺之?dāng)?shù)據(jù)庫設(shè)計的示例分析-創(chuàng)新互聯(lián)

這篇文章給大家分享的是有關(guān)asp.net開發(fā)微信公眾平臺之?dāng)?shù)據(jù)庫設(shè)計的示例分析的內(nèi)容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

10多年的福安網(wǎng)站建設(shè)經(jīng)驗,針對設(shè)計、前端、開發(fā)、售后、文案、推廣等六對一服務(wù),響應(yīng)快,48小時及時工作處理。全網(wǎng)整合營銷推廣的優(yōu)勢是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動調(diào)整福安建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計,從而大程度地提升瀏覽體驗。創(chuàng)新互聯(lián)從事“福安網(wǎng)站設(shè)計”,“福安網(wǎng)站推廣”以來,每個客戶項目都認(rèn)真落實執(zhí)行。

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

asp.net開發(fā)微信公眾平臺之?dāng)?shù)據(jù)庫設(shè)計的示例分析

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

asp.net開發(fā)微信公眾平臺之?dāng)?shù)據(jù)庫設(shè)計的示例分析

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

asp.net開發(fā)微信公眾平臺之?dāng)?shù)據(jù)庫設(shè)計的示例分析

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

asp.net開發(fā)微信公眾平臺之?dāng)?shù)據(jù)庫設(shè)計的示例分析

5、自定義菜單,創(chuàng)建和管理微信公眾平臺中的自定義菜單,設(shè)計如下:

asp.net開發(fā)微信公眾平臺之?dāng)?shù)據(jù)庫設(shè)計的示例分析

6、其他,  具體根據(jù)做的實際項目來設(shè)計, 比如 用戶分析、訪問統(tǒng)計;   用戶積分;  二維碼相關(guān) 等等 ,  此處先不設(shè)計。

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

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

asp.net開發(fā)微信公眾平臺之?dāng)?shù)據(jù)庫設(shè)計的示例分析

下載腳本,如下:在數(shù)據(jù)庫中創(chuàng)建一個名為微信(設(shè)計數(shù)據(jù)庫時自己定義的)的數(shù)據(jù)庫,腳本執(zhí)行一下就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 , --自有系統(tǒng)的用戶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 , --創(chuàng)建時間
  State            int              default  1                      NOT NULL , --狀態(tài)-1為正常
  PreFirst         varchar(150)     default ''                      NOT NULL , --預(yù)留字段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 , --對應(yīng)微信分組ID
  WeiName          varchar(50)      default ''                      NOT NULL , --微信分組名
  Note             varchar(100)     default ''                      NOT NULL , --備注
  CreateTime       datetime         default  getdate()              NOT NULL , --創(chuàng)建時間
  State            int              default  1                      NOT NULL , --狀態(tài)
);


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 , --最后次關(guān)注時間戳
  CreateTime       datetime         default  getdate()              NOT NULL , --創(chuàng)建時間
  State            int              default  1                      NOT NULL , --狀態(tài)
  PreFirst         varchar(150)     default ''                      NOT NULL , --預(yù)留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 , --置頂結(jié)束時間
  Title            varchar(100)     default ''                      NOT NULL , --標(biāo)題
  KeyWorld         varchar(150)     default ''                      NOT NULL , --關(guān)鍵字
  Summary          varchar(680)     default ''                      NOT NULL , --簡介//680為微信文字上限左右
  Content          ntext            default ''                      NOT NULL , --內(nèi)容
  Source           varchar(50)      default  '獨家原創(chuàng)'                 NOT NULL , --來源
  CreateTime       datetime         default  getdate()              NOT NULL , --創(chuàng)建時間
  PublishTime      datetime         default  getdate()              NOT NULL , --發(fā)布時間
  AOrder           int              default  99                     NOT NULL , --排序
  State            int              default  1                      NOT NULL , --狀態(tài)
  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 , --當(dāng)前級別
  SOrder           int              default  99                     NOT NULL , --排序
  State            int              default  1                      NOT NULL , --狀態(tài)
  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---------------------------------------------------------關(guān)鍵字表
(
  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 , --狀態(tài)
  CreateTime       datetime         default  getdate()              NOT NULL , --創(chuàng)建時間
  ReType           int              default  1                      NOT NULL , --回復(fù)消息類型1為文本
);


if exists ( select *  from  sysobjects where name = 'tb_KeyContent' and xtype='U') 
drop table tb_KeyContent
create table  tb_KeyContent------------------------------------------------------關(guān)鍵字返回內(nèi)容表
(
  ID               int              primary key identity(1,1)       NOT NULL , --主鍵-主鍵
  Title            varchar(150)     default ''                      NOT NULL , --標(biāo)題
  Content          varchar(700)     default ''                      NOT NULL , --內(nèi)容
  KeyId            int              default  0                      NOT NULL , --關(guān)鍵字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 , --置頂結(jié)束時間
  CreateTime       datetime         default  getdate()              NOT NULL , --創(chuàng)建時間
  State            int              default  1                      NOT NULL , --狀態(tài)
  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 , --消息內(nèi)容
  CreateTime       datetime         default  getdate()              NOT NULL , --創(chuàng)建時間
  State            int              default  1                      NOT NULL , --狀態(tài)
  ReState          int              default  0                      NOT NULL , --回復(fù)狀態(tài)
  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-------------------------------------------------------------回復(fù)消息表
(
  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 , --回復(fù)類型//文本圖文
  ReFrom           int              default  1                      NOT NULL , --回復(fù)點//1文章2關(guān)鍵詞
  ReContentId      varchar(80)      default  '0,'                   NOT NULL , --回復(fù)的內(nèi)容ID串
  CreateTime       datetime         default  getdate()              NOT NULL , --回復(fù)記錄時間
);


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 , --當(dāng)前級別
  LinkUrl          varchar(350)     default  '#'                    NOT NULL , --鏈接地址view時用
  CreateTime       datetime         default  getdate()              NOT NULL , --創(chuàng)建時間
  POrder           int              default  99                     NOT NULL , --排序
  State            int              default  1                      NOT NULL , --狀態(tài)
  Note             varchar(150)     default ''                      NOT NULL , --備注
);

感謝各位的閱讀!關(guān)于“asp.net開發(fā)微信公眾平臺之?dāng)?shù)據(jù)庫設(shè)計的示例分析”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學(xué)到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

網(wǎng)站名稱:asp.net開發(fā)微信公眾平臺之?dāng)?shù)據(jù)庫設(shè)計的示例分析-創(chuàng)新互聯(lián)
文章源于:http://muchs.cn/article18/dsghgp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站內(nèi)鏈商城網(wǎng)站、網(wǎng)站設(shè)計公司外貿(mào)建站、做網(wǎng)站、自適應(yīng)網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站建設(shè)