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

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

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

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

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

3 回答

?
婷婷同學(xué)_

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

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

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

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

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


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

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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