4

This question詢問有關在關係數據庫中存儲單個圖形的問題。在這種情況下,解決方案很明顯:一個表用於節點,一個表用於邊緣。將大量圖形數據結構存儲在數據庫中

我有一個圖形數據結構,隨着時間的推移發展,所以我想將這個圖形的「快照」存儲在數據庫中。我想象有數百個這樣的快照。

一個解決方案是爲每個快照創建一個全新的表對節點和邊(如上所述)。有更好的解決方案嗎?

編輯:有人問我想用這個數據庫做什麼。我相信除了將圖形的所有轉儲到C++的MySQL,然後將它們全部加載回到C++數據結構中之外,我不會做任何查詢。所以我想用MySQL來存儲,而不是用於高效的隨機訪問/搜索。

+0

您能否添加一些關於您想要對歷史圖表進行處理的細節?你需要能夠對他們運行查詢/搜索嗎? – 2011-05-10 01:15:22

+0

我相信我不會做任何查詢,除非將所有圖形從C++轉儲到MySQL,然後將其全部載入到C++數據結構中。所以我想用MySQL來存儲,而不是用於高效的隨機訪問/搜索。 – 2011-05-10 09:41:45

回答

5

你需要一個表

graphs = (graphid, dateofsnapshot or other things unique to the snapshot) 

,你需要的節點和邊桌,但與foriegn關鍵參考圖表表。這樣你可以在數據庫中有任意數量的圖。

+0

您認爲EDIT中描述的任務比爲每個圖創建新表更高效嗎? – 2011-05-10 09:42:23

+0

@Lex Fridman我仍然認爲一個正確的標準化設計比每個圖創建一對新表更好。 – 2011-05-10 10:21:52