? ? 在開發(fā)微信公眾平臺(tái)之前,先去微信官方了解下大概的情況這裡:http://mp.weixin.qq.com/wiki/index.php?;看了之後心裡大致有數(shù)了,開始設(shè)計(jì)資料庫,盡可能的考慮,未考慮到的,以後再補(bǔ)充。
? ? 1、首先是使用者部分,依照微信官方的介面結(jié)合實(shí)際運(yùn)用,使用者部分有3個(gè)表格:使用者表、使用者資料表、使用者分組表,我設(shè)計(jì)的如下:
2、使用者設(shè)計(jì)好之後就是文章部分,包括:文章分類表、文章表, ?設(shè)計(jì)如下:
3、有了用戶相關(guān)的表我們可以保存用戶,有了文章模組的表我們可以根據(jù)用戶輸入的信息查詢文章進(jìn)行回傳(傳回文字、圖文、圖片、音樂、影片、語音等等),但實(shí)際運(yùn)用中,我們存在需要指定特定的關(guān)鍵字傳回特定的內(nèi)容的情況,那麼就需要專門的特定關(guān)鍵字模組, ?包含:關(guān)鍵字表、關(guān)鍵字返回的內(nèi)容表, ?這裡的內(nèi)容表看著像是與上面的文章表有重合,實(shí)則不然, 這裡是特定關(guān)鍵字指定的回復(fù)內(nèi)容,可以指定返回文本、圖文或其他多媒體訊息,當(dāng)返回多媒體訊息時(shí)內(nèi)容中存入文件地址, ?上面的文章表是標(biāo)準(zhǔn)的通用的文章內(nèi)容表, 供用戶查詢多數(shù)情況下直接返回圖文信息,且圖文信息點(diǎn)擊鏈接時(shí)就是這篇文章對(duì)應(yīng)的展示地址, 相當(dāng)於一個(gè)微網(wǎng)站, ?所以文章和這個(gè)關(guān)鍵字的內(nèi)容表分開設(shè)計(jì)更方便管理。 設(shè)計(jì)如下:
4、訊息記錄, ?把用戶發(fā)送的訊息進(jìn)行記錄,方便後續(xù)處理, ?例如根據(jù)用戶上次發(fā)出的事件訊息,之後再發(fā)同一個(gè)關(guān)鍵字時(shí),回到對(duì)應(yīng)選單下的內(nèi)容,而不用用戶每次發(fā)送訊息都帶著對(duì)應(yīng)的選單選項(xiàng);客服訊息根據(jù)記錄的資訊做個(gè)人化的服務(wù)等等。 包括:用戶發(fā)送的消息記錄表、回覆給用戶的消息記錄表?,有了這些可以完整的還原和用戶的對(duì)話,這裡是記錄和用戶交流的過程,具體用戶發(fā)來的消息需要返回什麼樣的訊息,由專案程式碼中業(yè)務(wù)決定。 設(shè)計(jì)如下:
5、自訂選單,創(chuàng)建和管理微信公眾平臺(tái)中的自訂選單,設(shè)計(jì)如下:
6、其他, ?、存取統(tǒng)計(jì); ? 使用者積分; ?二維碼相關(guān)等等, ?此處先不設(shè)計(jì)。
? ? ?以上設(shè)計(jì)中,有些是沒有設(shè)計(jì)到資料庫的, 例如關(guān)鍵字模組中的回覆訊息類型、訊息記錄中的訊息類型, ?這些固定不變(由騰訊決定)的少量的單一選項(xiàng)形式的數(shù)據(jù),我們?cè)诰唧w項(xiàng)目中使用其他方法來實(shí)現(xiàn)(固定靜態(tài)、設(shè)定檔、快取等),無需設(shè)計(jì)資料庫。
完整設(shè)計(jì)如下:(為了方便截圖,我把各個(gè)模組的表格拖曳覆蓋了)
下載腳本,如下:在資料庫中建立一個(gè)名為微信(設(shè)計(jì)資料庫時(shí)自己定義的)的資料庫,腳本執(zhí)行一下就OK,
use weixin -------微信公眾平臺(tái) 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)建時(shí)間 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 , --對(duì)應(yīng)微信分組ID WeiName varchar(50) default '' NOT NULL , --微信分組名 Note varchar(100) default '' NOT NULL , --備注 CreateTime datetime default getdate() NOT NULL , --創(chuàng)建時(shí)間 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)注時(shí)間戳 CreateTime datetime default getdate() NOT NULL , --創(chuàng)建時(shí)間 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 , --置頂開始時(shí)間 TopEndTime datetime default getdate() NOT NULL , --置頂結(jié)束時(shí)間 Title varchar(100) default '' NOT NULL , --標(biāo)題 KeyWorld varchar(150) default '' NOT NULL , --關(guān)鍵字 Summary varchar(680) default '' NOT NULL , --簡(jiǎn)介//680為微信文字上限左右 Content ntext default '' NOT NULL , --內(nèi)容 Source varchar(50) default '獨(dú)家原創(chuàng)' NOT NULL , --來源 CreateTime datetime default getdate() NOT NULL , --創(chuàng)建時(shí)間 PublishTime datetime default getdate() NOT NULL , --發(fā)布時(shí)間 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 , --父級(jí)ID IndexLevel int default 1 NOT NULL , --當(dāng)前級(jí)別 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)建時(shí)間 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 , --置頂開始時(shí)間 TopEndTime datetime default getdate() NOT NULL , --置頂結(jié)束時(shí)間 CreateTime datetime default getdate() NOT NULL , --創(chuàng)建時(shí)間 State int default 1 NOT NULL , --狀態(tài) Href varchar(250) default '#' NOT NULL , --圖文時(shí)點(diǎn)開的鏈接 ); 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)建時(shí)間 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ù)點(diǎn)//1文章2關(guān)鍵詞 ReContentId varchar(80) default '0,' NOT NULL , --回復(fù)的內(nèi)容ID串 CreateTime datetime default getdate() NOT NULL , --回復(fù)記錄時(shí)間 ); 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 , --父級(jí)ID IndexLevel int default 1 NOT NULL , --當(dāng)前級(jí)別 LinkUrl varchar(350) default '#' NOT NULL , --鏈接地址view時(shí)用 CreateTime datetime default getdate() NOT NULL , --創(chuàng)建時(shí)間 POrder int default 99 NOT NULL , --排序 State int default 1 NOT NULL , --狀態(tài) Note varchar(150) default '' NOT NULL , --備注 );
更多asp.net開發(fā)微信公眾平臺(tái)(1)資料庫設(shè)計(jì)相關(guān)文章請(qǐng)關(guān)注PHP中文網(wǎng)!

熱AI工具

Undress AI Tool
免費(fèi)脫衣圖片

Undresser.AI Undress
人工智慧驅(qū)動(dòng)的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費(fèi)的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費(fèi)的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強(qiáng)大的PHP整合開發(fā)環(huán)境

Dreamweaver CS6
視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版
神級(jí)程式碼編輯軟體(SublimeText3)