第一章,內(nèi)容規(guī)劃
后臺(tái)部分
按功能來劃分,視頻數(shù)據(jù),留言模塊,用戶模塊,配置模塊,其他模塊(導(dǎo)航,分類),模板模塊,定時(shí)認(rèn)為模塊,腳本管理模塊。
前臺(tái)部分
按頁面來分,主頁面(展示各類信息),詳情頁(展示單條數(shù)據(jù)的信息),播放頁(展示單條數(shù)據(jù)的信息+播放),個(gè)人中心(修改密碼,修改昵稱),分類頁(全部分類,年代,地區(qū)),搜索頁(搜索數(shù)據(jù)),導(dǎo)航頁(某個(gè)導(dǎo)航下的所有分類數(shù)據(jù))
導(dǎo)航分類(后臺(tái))
先要確定分類字段,在電影網(wǎng)站的分類頁面,都會(huì)有分類的單獨(dú)描述,關(guān)鍵字(這里簡(jiǎn)稱seo信息)。導(dǎo)航下也許存在二級(jí)分類(可能需要聯(lián)表查詢子分類),導(dǎo)航可以設(shè)置顯示隱藏。導(dǎo)航萬一要調(diào)整輸出順序呢?(所以index位置少不了)
name(用于導(dǎo)航名稱),display(顯示隱藏),parent_id(存在父級(jí)導(dǎo)航,那么存父級(jí)的_id,不存在則存false,用于判斷真假,是否是一級(jí)導(dǎo)航或者二級(jí)分類),seo信息用于存儲(chǔ)
{? ? "name" : "動(dòng)作片",? ? "parent_id" : ObjectId("5e819a8619f4d790bc5d0c76"),? ? "display" : true,? ? "seo" : {? ? ? ? "title" : "動(dòng)作片",? ? ? ? "keywords" : "動(dòng)作片",? ? ? ? "description" : "動(dòng)作片"? ? },? ? "type" : "nav_type",? ? "index" : 0? }
視頻數(shù)據(jù)(后臺(tái))
先要確定數(shù)據(jù)字段,有哪些字段??字段設(shè)置成什么類型合適??
這里我參照資源網(wǎng)的來思考做
標(biāo)題,導(dǎo)演,主演,更新時(shí)間,描述,更新狀態(tài),封面,語言,地區(qū),發(fā)布時(shí)間。這幾個(gè)字段是必須要有的,
這里需要注意的是,如果搜索中藥做演員表索引搜索的話,最好吧演員表這里設(shè)置成數(shù)組.例: ["靳東","蔣欣"];
這樣在mongodb中使用$in操作符方便查找演員,我這里因?yàn)椴蛔鲅輪T索引,索引就直接字符串來存。
如果不是存的數(shù)組,存字符串來查找演員,那么免費(fèi)版芒果,只能用正則,很浪費(fèi)時(shí)間
其他功能比如: 顯示隱藏display,允許留言replay,置頂popular,可以設(shè)置布爾值
{? ? "videoTitle" : "如果歲月可回頭",? ? "director" : "張建棟",? ? "videoImage" : "https://img.sokoyo-rj.com/tuku/upload/vod/2020-03-20/202003201584709196.jpg",? ? "poster" : "/upload/poster/2c726d3d-4afb-46d9-b86f-32718ad6fc08.jpg",? ? "video_tags" : [],? ? "performer" : "靳東,蔣欣,李宗翰,李乃文,左小青,趙子琪,傅晶,陳冰",? ? "video_type" : ObjectId("5e7e0c2747c77574c0c55429"),? ? "video_rate" : 0,? ? "update_time" : "2020-03-27 22:16:02",? ? "language" : "國(guó)語",? ? "sub_region" : "大陸",? ? "rel_time" : "2020",? ? "introduce" : "同一個(gè)城市中,三個(gè)彼此陌生的家庭都出事了,三個(gè)婚姻失敗的家庭孤獨(dú)無助難以自拔,不約而同想換 個(gè)活法,逃避現(xiàn)實(shí)生活的殘酷。一個(gè)有著一段風(fēng)雨過去的女人介入了他們的顛覆,等待他們的是無盡的未知,瘋狂玩樂代孕艷遇快意恩仇。有人選擇順從宿命,有人選擇逆天而愛,歷經(jīng)了萬水千山,是重新回頭還是拒絕,他們?cè)撊绾蚊鎸?duì)?",? ? "remind_tip" : "更新至14集",? ? "popular" : true,? ? "allow_reply" : false,? ? "display" : true,? ? "scource_sort" : false}
分類怎么辦?
一個(gè)電影在展示的時(shí)候是需要找對(duì)應(yīng)的分類,如果字段寫死了,那么后期想修改分類的名稱,就要找到所有的視頻數(shù)據(jù),批量替換舊的分類名稱,這就不好了。最好的辦法就是《聯(lián)表查詢》,mongo提供了聯(lián)表查詢的操作,使用管道aggregate操作符來聯(lián)表查詢
{? ? $lookup: {? ? ? ? from: "other",? ? ? ? ? ? ? ? ? // 關(guān)聯(lián)的表 名稱? ? ? ? localField: "video_type",? ? ? ? // 當(dāng)前表的字段 需要關(guān)聯(lián)到目標(biāo)表? ? ? ? foreignField: "_id",? ? ? ? ? ? // 目標(biāo)表和當(dāng)前表字段對(duì)應(yīng)的字段? ? ? ? as: "type"? ? ? ? ? ? ? ? ? ? ? // 輸出的字段? ? }},{? ? $unwind: "$type"}
那么索引到的數(shù)據(jù)大概就是這樣↓
用戶模塊
用戶信息最少也需要有三個(gè)字段,username(用戶名), password(密碼),nickname(昵稱)
其他的比如,顯示隱藏display, 權(quán)限位置高低grade_id,是否默認(rèn)default,可以做,這里以最簡(jiǎn)單的為例子
密碼可以md5或者md5+hash,或者加點(diǎn)鹽??
_id 是mongodb插入時(shí)自帶的唯一索引的字段,對(duì)于分布式來說解決了id重復(fù)的問題,我們可以直接用。省去了自己生成id的麻煩事了,自帶唯一索引,血賺
{? ? "_id" : ObjectId("5e7e35cf4345c47a1c8c15f6"),? ? "userName" : "abcdxxxx",? ? "passWord" : "ba0a086c8a7b0ca4232406b5efff3a95",? ? "nickName" : "阿打算",? ? "admin" : false,? ? "display" : true,? ? "default" : false,? ? "grade_id" : 0}
留言模塊
可能新同學(xué)(這里指的是cxk打籃球的那種前端去搞留言)做留言的時(shí)候麻煩過,怎么規(guī)劃?有啥字段。
這里以樓中樓形式留言為模型。
數(shù)據(jù)字段如下:
_id系統(tǒng)自帶,用于表示本條數(shù)據(jù)的唯一id,
vid用于關(guān)聯(lián)視頻表中對(duì)應(yīng)視頻的唯一_id,
uid用于關(guān)聯(lián)用戶表中對(duì)應(yīng)的用戶的唯一_id,
pid用于查找本條留言的父一級(jí)(這里指蓋樓那個(gè)小崽子那條留言的_id)
wid樓里面的留言肯定是對(duì)某某人進(jìn)行的,你回復(fù)了哪個(gè)鱉孫??就是那個(gè)鱉孫的唯一_id
{? ? "_id" : ObjectId("5e7f93a60eefb36e54fe8f72"),? ? "vid" : ObjectId("5e7e15b04a285358100e3d6f"),? ? "uid" : ObjectId("5e7e35cf4345c47a1c8c15f6"),? ? "pid" : false,? ? "wid" : false,? ? "agree" : true,? ? "display" : true,? ? "date" : 1585419174015.0,? ? "sub_date" : 1585419174014.0,? ? "text" : "達(dá)大廈"}
和視頻數(shù)據(jù)關(guān)聯(lián)分類數(shù)據(jù)一樣,我們不能每條留言吧用戶名和對(duì)誰回復(fù)寫死,萬一對(duì)方改名了呢??你全表在找到舊的數(shù)據(jù)瘋狂替換嗎?所以這里還得用聯(lián)表查詢。
查找留言的時(shí)候,規(guī)則如下:
先找到一級(jí)評(píng)價(jià),也就是蓋樓那個(gè)鱉孫
然后循環(huán)這兩條數(shù)據(jù),用這兩條數(shù)據(jù)_id,去找蓋樓的下面的二級(jí)回復(fù)的數(shù)據(jù),找到吧他們加到本條數(shù)據(jù)(蓋樓的那條數(shù)據(jù))的children字段里面
至此留言和用戶部分結(jié)束。
演示地址:https://www.youletv.com