2011-08-03 39 views
0

我能不明白的地方的Facebook使用MySQL的真:圖表和Facebook中的MYSQL數據庫之間的區別?

所有的數據庫可以被看作是一個圖表:

Account - Like -> Comment 
Account <- friend -> Account2 
Account - Like -> Link 

,什麼是存儲在MySQL?

帖子和筆記的文字?

在其圖形數據庫中有所有這些實體(帳戶,發佈,評論)嗎?

回答

1

嗯,我認爲你提到的一切都存儲在MySQL中。每一段數據如有更改,其中包括:

  • 用戶
  • 帖子
  • 評論
  • 信息有關上傳的圖片(而不是圖片本身)
  • 喜歡
  • 關於用戶數據登錄
  • 廣告
  • 有關用戶喜歡/不喜歡廣告的數據
  • 用戶設置

任何數據如有更改,需要用於索引和快速訪問保存在數據庫中。如果您想要寫入只有數據,例如日誌記錄,則Filesystem沒問題。或者如果您只需要一次訪問整個數據,而不是其中的一部分。

但是,如果您需要結構化數據並準備好快速訪問,那麼您需要使用數據庫。您可能想了解二叉樹:http://en.wikipedia.org/wiki/Binary_tree

關於Facebook:如果我必須猜測,我會說有可能有數百個數據庫。我沒有訪問他們的服務器,所以我不能評論這:)但作爲另一個例子,如果你安裝WordPress,那麼它會創建11個不同的表。 http://codex.wordpress.org/Database_Description

PS。儘管如此,facebook沒有理由使用MySQL。那裏有很多不同的數據庫。

編輯感謝您指出我誤解了您的問題。

讓我們這種情況:帳戶< - 朋友 - >帳戶2

正如之前所說,他們有像表「用戶」。

用戶表將具有列:

  • ID(它已PRIMARY KEY這是爲了給唯一的ID到每個行)
  • 用戶名(文本字段與一些的長度,例如64個字符)
  • ...還有更多......

現在會有桌子「朋友」。這將有字段:

  • ID(再次,PRIMARY KEY)
  • PERSON1
  • PERSON2

兩個領域PERSON1和PERSON2將在表 「用戶」 指向ID整數。

所以,如果表的用戶有三行:

ID Username 
1 rodi 
2 rauni 
3 superman 

然後表「朋友」將是例如:

ID Person1 Person2 
1 1  2 
2 2  1 
3 1  3 
4 3  1 

這裏第1名的意思是「羅迪是朋友與rauni」和第2行意味着「rauni是rodi的朋友」。這是多餘的,但我想保持簡單的例子。

這裏是很好的教程:http://www.tizag.com/mysqlTutorial/mysqltables.php 有很多網頁那裏,只是繼續點擊下一步跳過你已經知道(我不知道有多少你已經知道)

這是關於兩個加盟信息表格:http://www.tizag.com/mysqlTutorial/mysqljoins.php

您可以使用它在一個查詢中從我們的兩個表中選擇所有rodi的朋友。

+0

好的,但是,您將所有邊緣作爲「帳戶 - 喜歡 - >鏈接」或「帳戶<- friend ->帳戶2」存儲在哪裏? – rodi

+1

這是一個很好的和詳細的解釋。如果我還沒有上傳你的原始答案,我會加倍努力,以便進行修改。那麼有人會給他另一個upvote? –

+0

:D感謝支持:) –

相關問題