我有一些數據(目前在CSV格式),其爲Ñ -D陣列 - 有Ñ - 尺寸,和一個數據值在每個n各自數據點尺寸爲。所有架構解決方案我來爲存儲該陣列是空間效率不高 - 例如,爲2d中的顯而易見的解決方案:表示DB的ND陣列有效地
Table ArrayData
----------------
id
row
column
dataValue
佔用O(N^2)空間,並且類似地使用Nd陣列需要O( N^N)空間。因爲我知道row
和column
的大小和形狀是什麼(它們只是從0到任何的範圍),我覺得我應該只需要存儲id
和dataValue
- 數據的順序應該足夠,類似於數據一個n -D數組存儲在C中的內存中。
我可以定義索引到數組和索引到數組的函數 - 但是這看起來有點過度消耗。我錯過了明顯嗎?有這種事情的預定義的SQL函數嗎?
謝謝,我收到您對物體和傳統數據存儲的評論 - 您是否瞭解其他技術?我仍然希望儘可能有效地堅持這些數據。你描述的'FK'是'int',所以存儲空間仍然是O(N^N)否? – danodonovan 2012-01-13 22:04:37
我不確定你的意思?您的選擇是不規範化並將所有值全部保存在一個表中(複製記錄)或使用外鍵。如果你試圖存儲的數據實際上是整數,那麼你不會通過規範化來保存任何空間(這也許是你問的問題?)。如果你只打算使用更小的整數,你可以嘗試使用更小的數據類型(16位整數?),但是你的增長會受到很大限制。 – Arbiter 2012-01-17 15:16:09