2016-04-24 55 views
0

我試圖使用來自不同社交網絡(Twitter,Facebook,Linkedin等)的數據實現統一新聞傳播。每個網絡都有不同類型的數據,例如,我需要在新聞源中顯示twitter提及,轉推,甚至是直接消息。使用來自不同社交網絡的數據實現新聞傳播

我創建了一個posts表,並且對於每種類型,我有不同的表(例如,twitter_mentions,retweets)。現在,我有一個名爲post_typepost_id的列,並基於post_type我可以查詢相應的表。現在由於這種策略,我必須爲每種類型運行不同的查詢。

有沒有更好的方法來實現這種統一的新聞傳播?

回答

1

你的方法不錯。關係數據庫和3NF相當標準。你當然可以只有一張桌子(又名posts),並且不斷添加更多的列,這些列對於每個post_type都是唯一的,如果相關的話它們將被填充。問題在於,在傳統的關係型數據庫中,列的數量並不經常改變。雖然像TokuDB(使用分形樹而不是B樹)的MySQL數據庫引擎,但根據需要添加新列(和索引)並不是緊張的工作。

我想爲這種類型的安裝建議一個無SQL DB。在No-SQL數據庫中,模式意圖經常更改,或者至少表(或表等價物)不受限於給定模式。你可以在MongoDB中看到它,它將數據存儲爲JSON或BSON。在MongoDB中,將所有不同後置類型的帖子存儲到一個集合中是完全正確的。在所有後期類型中都會有一些常見的字段,並且某些字段對於某些帖子類型是唯一的,而且MongoDB可以。您可以根據常用字段或唯一字段進行搜索。