2016-10-12 64 views
0

假設我想構建一個支持多種可愛實體的Like Service:照片,評論,用戶等等。該名單是開放式的。我對這個問題沒有自信,我的問題是:Like服務數據庫組織

1)關係數據庫引擎如何套裝我的需求?我會有一個通用的實體(like_id,user_id)和多個透視實體:like_photo(id,like_id,photo_id),like_video(id,like_id,video_id)其中,pivot表中的like_id字段是引用通常像表允許識別喜歡的用戶和其他信息,如時間戳等

2)我寧願使用某種nosql數據庫爲此目的(根本沒有經驗的nosql)?

2.1)是否有可能有一個可靠的跨數據庫引用(RMDBS - 的NoSQL數據庫)

回答

0

你給我們很少去 - 而這個問題可能會陷入爭論和意見。

但我給它一個去 - 根據您提供的信息非常少......

如果你所要做的就是創建,讀取,更新和刪除的事實,用戶喜歡的對象,那麼是的,關係數據庫就是票。

users 
---------- 
userID 
.... 


Objects 
---------- 
objectID 
URL 
objectType 
.... 


Likes 
---------- 
UserID 
ObjectID 

您當然可能需要存儲更多關於「對象」的信息。這就是您可能遇到麻煩的地方 - 如果您必須存儲多態數據類型,那麼關係數據庫不夠優雅。你可以谷歌(我已經看到並就此回答了幾個問題)。

NoSQL是否「更好」在這裏完全取決於您打算支持的用例。你需要提供更多的上下文。

+0

感謝您的回答!這更像是一個概念性問題,這可能是一個錯誤的地方。無論如何,上下文是基於Laravel/MySql的應用程序。有幾張桌子可以容納內容(帖子,評論,照片,視頻),我基本上需要一個提供喜歡功能的獨特服務。它必須能夠快速提取任何支持喜歡的任何單個對象/集合以及相關信息的喜歡,它也應該能夠彙總關於喜歡的數據並計算一些統計信息。對不起,我不確定這封郵件是否澄清了任何問題。 – Sergey