pipeline 之数据库接口设计 -By王莹
2012-11-11 16:04
85 查看
随着近几天的工作,剩余的时间渐渐的减少,剩余的工作量也随之消逝。下面简要介绍一下数据库的一些接口的定义。
首先还是要看一下数据库的定义:
/*
2012年11月4日17:00:40
用户: sa
密码:10061177
服务器: (local)
数据库: BigHouse
应用程序:
*/
_TableDoc
CREATE TABLE _TableDoc
(
_Id int NOT NULL PRIMARY KEY IDENTITY(1,1),
_Author nvarchar(255),
_Title nvarchar(255) not null,
_Description text,
_PubTime nvarchar(255),
_UrlLink nvarchar(255) not null,
_FilePath varchar(255),
_Rank smallint,
_KeyWords nvarchar(255),
_PageInfo text,
_FirstTag nvarchar(255),
_SecondTag nvarchar(255),
_ThirdTag nvarchar(255),
)
_TableVideo
create table _TableVideo
(
_Id int PRIMARY KEY IDENTITY(1,1),
_Title nvarchar(255) NOT NULL,
_Description text ,
_PubTime nvarchar(255),
_UrlLink nvarchar(255) UNIQUE,
_Rank smallint,
_PageInfo text,
_FirstTag nvarchar(255),
_SecondTag nvarchar(255),
_ThirdTag nvarchar(255)
)
_TableQuestion
create table _TableQuestion
(
_Id int PRIMARY KEY IDENTITY(1,1),
_Question nvarchar(255) NOT NULL,
_PageInfo text,
_FirstTag nvarchar(255),
_SecondTag nvarchar(255),
_ThirdTag nvarchar(255)
)
_TableAnswer
create table _TableAnswer
(
_Id int PRIMARY KEY IDENTITY(1,1),
_Answer text NOT NULL,
_QuestionId int NOT NULL,
foreign key(_QuestionId)references _TableQuestion(_Id)
)
create table _tableCommomPage
(
_Id int PRIMARY KEY IDENTITY(1,1),
_Title nvarchar(255),
_Description text,
_KeyWords nvarchar(255),
_ProcessTime varchar(255),
_PageInfo text,
_FirstPage nvarchar(255),
_SecondPage nvarchar(255),
_ThirdPage nvarchar(255)
)
上面是建立数据库表格时的SQL语句,如上面所示,我们一共建立五张表格,其中包括文档类,视频类,问答对,普通网页,而问答对有余会出现一个问题对应多种答案的情况,所以我们采用两张表格来存储。
下面具体来讲一下数据库的接口的定义吧。
如代码所示,把所有需要的操作都封装在了Factory这个类中,包括获取和存储。包括文档类的存取、视频类的存取、问答对的存取、普通网页的存取。
每一个类别的存储也分别封装在一个类中:
首先还是要看一下数据库的定义:
/*
2012年11月4日17:00:40
用户: sa
密码:10061177
服务器: (local)
数据库: BigHouse
应用程序:
*/
_TableDoc
CREATE TABLE _TableDoc
(
_Id int NOT NULL PRIMARY KEY IDENTITY(1,1),
_Author nvarchar(255),
_Title nvarchar(255) not null,
_Description text,
_PubTime nvarchar(255),
_UrlLink nvarchar(255) not null,
_FilePath varchar(255),
_Rank smallint,
_KeyWords nvarchar(255),
_PageInfo text,
_FirstTag nvarchar(255),
_SecondTag nvarchar(255),
_ThirdTag nvarchar(255),
)
_TableVideo
create table _TableVideo
(
_Id int PRIMARY KEY IDENTITY(1,1),
_Title nvarchar(255) NOT NULL,
_Description text ,
_PubTime nvarchar(255),
_UrlLink nvarchar(255) UNIQUE,
_Rank smallint,
_PageInfo text,
_FirstTag nvarchar(255),
_SecondTag nvarchar(255),
_ThirdTag nvarchar(255)
)
_TableQuestion
create table _TableQuestion
(
_Id int PRIMARY KEY IDENTITY(1,1),
_Question nvarchar(255) NOT NULL,
_PageInfo text,
_FirstTag nvarchar(255),
_SecondTag nvarchar(255),
_ThirdTag nvarchar(255)
)
_TableAnswer
create table _TableAnswer
(
_Id int PRIMARY KEY IDENTITY(1,1),
_Answer text NOT NULL,
_QuestionId int NOT NULL,
foreign key(_QuestionId)references _TableQuestion(_Id)
)
create table _tableCommomPage
(
_Id int PRIMARY KEY IDENTITY(1,1),
_Title nvarchar(255),
_Description text,
_KeyWords nvarchar(255),
_ProcessTime varchar(255),
_PageInfo text,
_FirstPage nvarchar(255),
_SecondPage nvarchar(255),
_ThirdPage nvarchar(255)
)
上面是建立数据库表格时的SQL语句,如上面所示,我们一共建立五张表格,其中包括文档类,视频类,问答对,普通网页,而问答对有余会出现一个问题对应多种答案的情况,所以我们采用两张表格来存储。
下面具体来讲一下数据库的接口的定义吧。
public class Factory { private Documents mydoc; private Videos myvideo; private QAndA myqa; private CommonPage commonpage; public Factory() { mydoc = new Documents(); myvideo = new Videos(); myqa = new QAndA(); commonpage=new CommonPage(); } public ArrayList getDoc(string _firstTag = "", string _secondTag = "", string _thirdTag = "") { return mydoc.getDoc(_firstTag, _secondTag, _thirdTag); } public bool saveDoc(DocItem item) { return mydoc.saveDoc(item); } public ArrayList getVideo(string _firstTag = "", string _secondTag = "", string _thirdTag = "") { return myvideo.getVideo(_firstTag, _secondTag, _thirdTag); } public bool saveVideo(VideoItem item) { return myvideo.saveVideo(item); } public ArrayList getQa(string _firstTag = "", string _secondTag = "", string _thirdTag = "") { return myqa.getQa(_firstTag, _secondTag, _thirdTag); } public bool savaQa(QaItem item) { return myqa.saveQa(item); } public ArrayList getPage(string _firstTag = "", string _secondTag = "", string _thirdTag = "") { return commonpage.getPage(_firstTag, _secondTag, _thirdTag); } public bool savePage(CommonPageItem item) { return commonpage.savePage(item); } }
如代码所示,把所有需要的操作都封装在了Factory这个类中,包括获取和存储。包括文档类的存取、视频类的存取、问答对的存取、普通网页的存取。
每一个类别的存储也分别封装在一个类中:
class CommonPageItem { private int Id; private string Title; private string Description; private ArrayList KeyWords; private DateTime ProcessTime; private string PageInfo; private string FirstTag; private string SecondTag; private string ThirdTag; public CommonPageItem() { KeyWords = new ArrayList(); } public void setId(int id) { this.Id = id; } public int getId() { return this.Id; } public void setTitle(string str) { this.Title = str; } public string getTitle() { return this.Title; } public void setDescription(string str) { this.Description = str; } public string getDescription() { return this.Description; } public void setProcessTime(DateTime datetime) { this.ProcessTime = datetime; } public void setProcessTimeByString(string str) { this.ProcessTime = DateTime.Parse(str); } public string getProcessTimeByString() { return this.ProcessTime.ToString(); } public DateTime getProcessTime() { return this.ProcessTime; } public void setKeyWords(string str) { string[] sArray = str.Split(';'); foreach (string i in sArray) { this.KeyWords.Add(i); } } public void setKeyWords(ArrayList arr) { this.KeyWords = arr; } public ArrayList getKeyWord() { return this.KeyWords; } public string getKeyWords() { string str = ""; for (int i = 0; i < this.KeyWords.Count; i++) { str += this.KeyWords[i]; if (i < (this.KeyWords.Count - 1)) str += ';'; } return str; } public void setPageInfo(string str) { this.PageInfo = str; } public string getPageInfo() { return this.PageInfo; } public void setFirstTag(string str) { this.FirstTag = str; } public string getFirstTag() { return this.FirstTag; } public void setSecondTag(string str) { this.SecondTag = str; } public string getSecondTag() { return this.SecondTag; } public void setThirdTag(string str) { this.ThirdTag = str; } public string getThirdTag() { return this.ThirdTag; } }
class DocItem { private int Id; private string Title; private string Author; private string Description; private string pubTime; private string urlLink; private string FilePath; private int Rank; private ArrayList Keywords; private string PageInfo; private string FirstTag; private string SecondTag; private string ThirdTag; public DocItem() { } public void setId(int id) { this.Id = id; } public int getId() { return this.Id; } public void setTitle(string str) { this.Title = str; } public string getTitle() { return this.Title; } public void setAuthor(string str) { this.Author = str; } public string getAuthor() { return this.Author; } public void setDescription(string str) { this.Description = str; } public string getDescription() { return this.Description; } public void setPubTime(string str) { try { this.pubTime = str; //this.pubTime = DateTime.ParseExact(str, "yyyyMMdd", System.Globalization.CultureInfo.InvariantCulture); } catch // (Exception e) { //Console.WriteLine(e.StackTrace); System.Console.WriteLine("日期转换时出错!"); } } public string getPubTime() { try { return this.pubTime;//.ToShortDateString(); } catch { System.Console.WriteLine("DateTime转string时出错!"); return null; } } public void setUrlLink(string str) { this.urlLink = str; } public string getUrlLink() { return this.urlLink; } public void setFilePath(string str) { this.FilePath = str; } public string getFilePath() { return this.FilePath; } public void setRank(int integer) { this.Rank = integer; } public int getRank() { return this.Rank; } public void setKeywords(ArrayList word) { this.Keywords = new ArrayList(); this.Keywords = word; } public void setKeywords(string word) { this.Keywords = new ArrayList(); string[] sArray = word.Split(';'); foreach (string i in sArray) { this.Keywords.Add(i); } } public ArrayList getKeywords() { return this.Keywords; } public string getKeyword() { string str = ""; for (int i = 0; i < this.Keywords.Count; i++) { str += this.Keywords[i]; if (i < (this.Keywords.Count - 1)) str += ';'; } return str; } public void setPageInfo(string str) { this.PageInfo = str; } public string getPageInfo() { return this.PageInfo; } public void setFirstTag(string str) { this.FirstTag = str; } public string getFirstTag() { return this.FirstTag; } public void setSecondTag(string str) { this.SecondTag=str; } public string getSecondTag() { return this.SecondTag; } public void setThirdTag(string str) { this.ThirdTag = str; } public string getThirdTag() { return this.ThirdTag; } /* internal void setAuthor(object p) { throw new NotImplementedException(); } internal void setDescription(object p) { throw new NotImplementedException(); }*/ }
class QaItem { private int Id; private string Question; private ArrayList Answer; private string PageInfo; private string FirstTag; private string SecondTag; private string ThirdTag; public QaItem() { Question = ""; Answer = new ArrayList(); FirstTag = ""; SecondTag = ""; ThirdTag = ""; } public void setId(int id) { this.Id = id; } public int getId() { return this.Id; } public void setPageInfo(string str) { this.PageInfo = str; } public string getPageInfo() { return this.PageInfo; } public string getQuestion() { return this.Question; } public void setQuestion(string str) { this.Question = str; } public ArrayList getAnswer() { return this.Answer; } public string getAnswers() { string str = ""; for (int i = 0; i < this.Answer.Count; i++) { str += this.Answer[i]; if (i < (this.Answer.Count - 1)) str += ';'; } return str; } public void setAnswer(ArrayList arr) { this.Answer = arr; } public void setAnswer(string str) { string[] sArray = str.Split('|'); foreach (string i in sArray) { this.Answer.Add(i); } } public void setFirstTag(string str) { this.FirstTag = str; } public string getFirstTag() { return this.FirstTag; } public void setSecondTag(string str) { this.FirstTag = str; } public string getSecondTag() { return this.SecondTag; } public void setThirdTag(string str) { this.ThirdTag = str; } public string getThirdTag() { return this.ThirdTag; } }
class VideoItem { private int Id; private string Title; private string Description; private string pubTime; private string urlLink; private int Rank; private string PageInfo; private string FirstTag; private string SecondTag; private string ThirdTag; public VideoItem() { } public int getId() { return this.Id; } public void setId(int id) { this.Id = id; } public void setTitle(string str) { this.Title = str; } public string getTitle() { return this.Title; } public void setDescription(string str) { this.Description = str; } public string getDescription() { return this.Description; } public void setPubTime(string str) { try { this.pubTime = str; //this.pubTime = DateTime.ParseExact(str, "yyyyMMdd", System.Globalization.CultureInfo.InvariantCulture); } catch // (Exception e) { //Console.WriteLine(e.StackTrace); System.Console.WriteLine("日期转换时出错!"); } } public string getPubTime() { try { return this.pubTime;//.ToShortDateString(); } catch { System.Console.WriteLine("DateTime转string时出错!"); return null; } } public void setUrlLink(string str) { this.urlLink = str; } public string getUrlLink() { return this.urlLink; } public void setRank(int integer) { this.Rank = integer; } public int getRank() { return this.Rank; } public void setPageInfo(string str) { this.PageInfo = str; } public string getPageInfo() { return this.PageInfo; } public void setFirstTag(string str) { this.FirstTag = str; } public string getFirstTag() { return this.FirstTag; } public void setSecondTag(string str) { this.SecondTag=str; } public string getSecondTag() { return this.SecondTag; } public void setThirdTag(string str) { this.ThirdTag = str; } public string getThirdTag() { return this.ThirdTag; } }
相关文章推荐
- pipeline 之数据库设计 ----by 王莹
- 数据库设计 Step by Step (3)——基本ER模型构件
- 数据库设计 Step by Step (8)——视图集成
- 数据库设计 Step by Step (6) —— 提取业务规则
- 数据库设计 Step by Step (8)——视图集成
- 数据库设计 Step by Step (8)——视图集成
- 数据库设计 Step by Step (4)——高级ER模型构件
- VC++课程设计:动漫新番信息管理系统(MFC+数据库ODBC接口)+外加两个副作品
- 数据库设计 Step by Step (4)——高级ER模型构件
- 本人初学设计模式时写的一个支持多数据库的数据访问接口
- 数据库设计 Step by Step (8)——视图集成
- 数据库设计 Step by Step (8)——视图集成
- 基于python的接口测试框架设计(一)连接数据库
- 数据库设计 Step by Step (5)——理解用户需求
- 宋体、数据库-H2DBEngine——Driver的设计与实现-by小雨
- 数据库设计Step by Step (10)——范式化
- 数据库设计 Step by Step
- 数据库设计 Step by Step (6) —— 提取业务规则
- 数据库设计 Step by Step (1)
- [转]数据库设计 Step by Step (5)