這篇文章給大家分享的是有關asp.net開發(fā)微信公眾平臺之數(shù)據(jù)庫設計的示例分析的內(nèi)容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
1、首先是用戶部分,根據(jù)微信官方的接口結合實際運用,用戶部分有3個表:用戶表、用戶資料表、用戶分組表,我設計的如下:
2、用戶設計好之后就是文章部分,包括:文章分類表、文章表, 設計如下:
3、有了用戶相關的表我們可以保存用戶,有了文章模塊的表我們可以根據(jù)用戶輸入的信息查詢文章進行返回(返回文本、圖文、圖片、音樂、視頻、語音等等),但是實際運用中,我們存在需要指定特定的關鍵字返回特定的內(nèi)容的情況,那么就需要專門的特定關鍵字模塊, 包括:關鍵字表、關鍵字返回的內(nèi)容表, 這里的內(nèi)容表看著像是與上面的文章表有重合,實則不然, 這里是特定關鍵字指定的回復內(nèi)容,可以指定返回文本、圖文或其他多媒體信息,當返回多媒體信息時內(nèi)容中存入文件地址, 上面的文章表是標準的通用的文章內(nèi)容表, 供用戶查詢多數(shù)情況下直接返回圖文信息,且圖文信息點擊鏈接時就是這篇文章對應的展示地址, 相當于一個微網(wǎng)站, 所以文章和這個關鍵字的內(nèi)容表分開設計更加方便管理。 設計如下:
4、消息記錄, 把用戶發(fā)來的消息進行記錄,方便后續(xù)處理, 比如 根據(jù)用戶上次發(fā)來的事件消息,之后再發(fā)同一個關鍵詞時,返回對應菜單下的內(nèi)容,而不用用戶每次發(fā)送消息都帶對應的菜單選項;客服消息根據(jù)記錄的信息做個性化的服務 等等。 包括:用戶發(fā)來的消息記錄表、回復給用戶的消息記錄表 ,有了這些可以完整的還原和用戶的對話,這里是記錄和用戶交流的過程,具體用戶發(fā)來的消息需要返回什么樣的消息,由項目代碼中業(yè)務決定。 設計如下:
5、自定義菜單,創(chuàng)建和管理微信公眾平臺中的自定義菜單,設計如下:
6、其他, 具體根據(jù)做的實際項目來設計, 比如 用戶分析、訪問統(tǒng)計; 用戶積分; 二維碼相關 等等 , 此處先不設計。
以上設計中,有一些是沒有設計到數(shù)據(jù)庫的, 比如關鍵字模塊中的回復消息類型、消息記錄中的消息類型, 這些固定不變(由騰訊決定)的少量的單選項形式的數(shù)據(jù),我們在具體項目中使用其他方法來實現(xiàn)(固定靜態(tài)、配置文件、緩存等),無需設計數(shù)據(jù)庫。
完整設計如下:(為了方便截圖 ,我把各個模塊的表拖動覆蓋了)
下載腳本,如下:在數(shù)據(jù)庫中創(chuàng)建一個名為微信(設計數(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 , --預留字段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 , --創(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 , --最后次關注時間戳 CreateTime datetime default getdate() NOT NULL , --創(chuàng)建時間 State int default 1 NOT NULL , --狀態(tài) 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 , --內(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 , --當前級別 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---------------------------------------------------------關鍵字表 ( 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 , --回復消息類型1為文本 ); if exists ( select * from sysobjects where name = 'tb_KeyContent' and xtype='U') drop table tb_KeyContent create table tb_KeyContent------------------------------------------------------關鍵字返回內(nèi)容表 ( ID int primary key identity(1,1) NOT NULL , --主鍵-主鍵 Title varchar(150) default '' NOT NULL , --標題 Content varchar(700) default '' NOT NULL , --內(nèi)容 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 , --創(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 , --回復狀態(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-------------------------------------------------------------回復消息表 ( 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 , --回復的內(nèi)容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 , --創(chuàng)建時間 POrder int default 99 NOT NULL , --排序 State int default 1 NOT NULL , --狀態(tài) Note varchar(150) default '' NOT NULL , --備注 );
感謝各位的閱讀!關于“asp.net開發(fā)微信公眾平臺之數(shù)據(jù)庫設計的示例分析”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
網(wǎng)站名稱:asp.net開發(fā)微信公眾平臺之數(shù)據(jù)庫設計的示例分析-創(chuàng)新互聯(lián)
文章源于:http://www.chinadenli.net/article18/dsghgp.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站內(nèi)鏈、商城網(wǎng)站、網(wǎng)站設計公司、外貿(mào)建站、做網(wǎng)站、自適應網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容