仿9GAG製作過程(五)

2022-08-17 09:30:21 字數 3811 閱讀 1740

於是就重新設計了資料庫,重新爬取了資料,重新設計了後台介面。

這次主要講這次重構的主要內容。

一共設計了六張表,分別為

段子表,主要存放每乙個段子的等資訊

使用者表標籤表,每條段子發表之前會自定義標籤,該錶存放的就是這些標籤

點讚記錄表,因為使用者點讚與段子之間是多對多的關係,因此要加一張表用來存放點讚記錄

段子標籤關聯表,因為段子和標籤是多對多的,因此需要多一張表存放關聯關係

橙色的為表,咖啡色為介面。

目前設計了十四個介面,上圖寫明了各界面和相關的表之間的關係。

bean包下為基本實體類;

implement包下為訊息實體類的子類;

dao包為涉及到資料庫的具體實現類;

servlet為介面類;

util為過程中用到的工具類。

下面以查詢段子介面為例,介紹具體的結構。

訊息實體類:

1

public

class

messageentity

1112

public

void

setreason(string reason)

1516

public

intgeterrorcode()

1920

public

void seterrorcode(int

errorcode)

2324 }

段子訊息實體類:

1

public

class topicmessageentity extends

messageentity 910

public

void setresult(listresult)

1314 }

段子實體類:

1

public

class

topicentity

2627

public

void setid(int

id)

3031

public

string getauthor()

3435

public

void

setauthor(string author)

3839

public

string gettitle()

4243

public

void

settitle(string title)

4647

public

intgetupvote()

5051

public

void setupvote(int

upvote)

5455

public

intgetcommentcount()

5859

public

void setcommentcount(int

commentcount)

6263

public

string getthumbnail()

6667

public

void

setthumbnail(string thumbnail)

7071

public

string getorgpicture()

7475

public

void

setorgpicture(string orgpicture)

7879

public

string getposttime()

8283

public

void

setposttime(string posttime)

8687

public

intgetlike()

9091

public

void setlike(int

like)

9495 }

這裡和資料庫表略有不同,主要是like欄位。

like欄位代表的是當前獲取資料的人對該段子是否點了贊。

查詢段子方法:

1

public listquery(int topicid, int count, boolean

after) 78

if (count <= 0)

1112

if(after) else

1718

return

topiclist;

19 }

1

private

void queryafter(int topicid, int count, listtopiclist)

26 } catch

(sqlexception e) finally

31 }

1

private

void querybefore(int topicid, int count, listtopiclist)

26 } catch

(sqlexception e) finally

3132

//獲取完資料之後逆序,因為查詢的時候是逆序

33collections.reverse(topiclist);

34 }

這三個方法實現了查詢指定段子前(或者後)count條記錄。

主要邏輯:查詢到需要的段子→遍歷段子→如果段子被點過讚或者踩,就把段子相應欄位更改為贊或者踩→由於查出來的資料時順序的,要改為逆序展示。

這次主要重構了後台的設計邏輯,其實還有好多不完備的地方。

通過這次重構,明白了乙個要點。要做一件事情首先要規劃好,首先是設計,把一切的流程,框架設計好之後按部就班的做。這樣做出來的東西才會比較好。

否則在過程中會很混亂,嚴重影響效率。

下一章準備講述點讚的邏輯,因為點讚的邏輯比較複雜。

tflite製作過程

bazel bin tensorflow contrib lite toco toco input file pwd facenet tmp ponet model.pb input format tensorflow graphdef output format tflite output fil...

關卡製作過程

主遊戲情節由主遊戲設計師完成,他們設計遊戲的情節,並將其分解成不同的關卡,而後他們會將工作成果寫入遊戲策劃案,他們的工作就此結束。而從關卡設計進入了乙個新的階段,新階段由關卡設計師完成,他們將根據主遊戲設計師編寫的策劃案去完成各種關卡的實際製作。1.確定目標 目標基於任務,要從多角度分析玩家完成目標...

reboot exe的製作過程

reboot.exe 的製作過程 程式設計工具 visual c net 2003 程式設計師 黃江斌 程式功能 關閉 重啟計算機 登出當前使用者。2005年8 月27日檔案 新建 專案,從中選擇 mfc mfc 應用程式 輸入工程名 reboot 應用程式型別 基於對話方塊。其它設定按預設。新增的...