第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在數(shù)據(jù)庫中實(shí)現(xiàn)評論和喜歡

在數(shù)據(jù)庫中實(shí)現(xiàn)評論和喜歡

我是一名軟件開發(fā)人員。我喜歡編碼,但我討厭數(shù)據(jù)庫...目前,我正在創(chuàng)建一個網(wǎng)站,允許用戶將實(shí)體標(biāo)記為喜歡(如FB),標(biāo)記和評論。我被困在數(shù)據(jù)庫表設(shè)計上來處理這個功能。解決方案是微不足道的,如果我們只能為一種類型的東西(例如照片)做到這一點(diǎn)。但我需要為5種不同的東西啟用它(現(xiàn)在,但我也假設(shè)隨著整個服務(wù)的增長,這個數(shù)字會增長)。我在這里發(fā)現(xiàn)了一些類似的問題,但沒有一個問題得到滿意的答案,所以我再次提出這個問題。問題是,如何正確,高效和彈性地設(shè)計數(shù)據(jù)庫,以便它可以存儲不同表的注釋,喜歡不同的表和標(biāo)簽。一些設(shè)計模式作為答案將是最好的;)詳細(xì)描述:我有一個表 User與一些用戶數(shù)據(jù),以及3個表:Photo用照片,Articles用文章,Places用的地方。我想啟用任何已登錄的用戶:評論這3個表中的任何一個將其中任何一個標(biāo)記為喜歡使用某個標(biāo)記標(biāo)記其中任何一個我還想計算每個元素的喜歡次數(shù)以及使用特定標(biāo)記的次數(shù)。 1 日的做法:a)對于標(biāo)簽,我將創(chuàng)建一個表 Tag [TagId, tagName, tagCounter],然后我會創(chuàng)造很多一對多的關(guān)系表為:Photo_has_tags,Place_has_tag,Article_has_tag。b)同樣重要的評論。三)我將創(chuàng)建一個表 LikedPhotos [idUser, idPhoto],LikedArticles[idUser, idArticle],LikedPlace [idUser, idPlace]。喜歡的數(shù)量將通過查詢計算(我認(rèn)為這是壞的)。和...我真的不喜歡這個設(shè)計的最后一部分,它對我來說很難聞;)2 次的方法:我將創(chuàng)建一個表ElementType [idType, TypeName == some table name],該表將由管理員(我)填充,其中包含可以被喜歡,評論或標(biāo)記的表的名稱。然后我將創(chuàng)建表:a)LikedElement [idLike, idUser, idElementType, idLikedElement]和注釋和標(biāo)簽相同,每個都有適當(dāng)?shù)牧小,F(xiàn)在,當(dāng)我想拍照時,我會插入:typeId = SELECT id FROM ElementType WHERE TypeName == 'Photo'INSERT (user id, typeId, photoId)和地方:typeId = SELECT id FROM ElementType WHERE TypeName == 'Place'INSERT (user id, typeId, placeId)......等等......我認(rèn)為第二種方法更好,但我覺得這個設(shè)計中也缺少一些東西......最后,我還想知道哪個最好的地方存放計數(shù)器元素被喜歡多少次。我只能想到兩種方式:在element(Photo/Article/Place)表中通過select count()。我希望我對這個問題的解釋現(xiàn)在更徹底。
查看完整描述

3 回答

?
婷婷同學(xué)_

TA貢獻(xiàn)1844條經(jīng)驗(yàn) 獲得超8個贊

既然你“討厭”數(shù)據(jù)庫,你為什么要嘗試實(shí)現(xiàn)一個?相反,向喜歡和呼吸這些東西的人尋求幫助。

否則,學(xué)會愛你的數(shù)據(jù)庫。精心設(shè)計的數(shù)據(jù)庫簡化了編程,設(shè)計網(wǎng)站并平滑其持續(xù)運(yùn)營。即使是經(jīng)驗(yàn)豐富的d / b設(shè)計師也不會有完整和完美的遠(yuǎn)見:隨著使用模式的出現(xiàn)或需求的變化,將需要一些架構(gòu)變化。

如果這是一個單人項(xiàng)目,則使用存儲過程將數(shù)據(jù)庫接口編程為簡單操作:add_user,update_user,add_comment,add_like,upload_photo,list_comments等。不要將模式嵌入到一行代碼中。通過這種方式,可以在不影響任何代碼的情況下更改數(shù)據(jù)庫模式:只有存儲過程應(yīng)該知道模式。

您可能需要多次重構(gòu)架構(gòu)。這很正常。不要擔(dān)心第一次完美。只需使其功能足以原型化初始設(shè)計。如果您有足夠的時間,請使用它,然后刪除架構(gòu)并再次執(zhí)行。它總是更好的第二次。


查看完整回答
反對 回復(fù) 2019-09-18
  • 3 回答
  • 0 關(guān)注
  • 1041 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號