您的位置:首页 > 数据库

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语句,如上面所示,我们一共建立五张表格,其中包括文档类,视频类,问答对,普通网页,而问答对有余会出现一个问题对应多种答案的情况,所以我们采用两张表格来存储。

下面具体来讲一下数据库的接口的定义吧。

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;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: