2017-09-05 51 views
0

我們有一個打印系統,它創建一個文檔(發票等),然後打印它們。 由於文檔大約4kb,我們不會實際存儲它們。 我們希望及時創建它們,但是用於創建文檔的一些變量可能會在以後更改,但我們仍然需要能夠將文檔視爲過去的版本。例如,如果一家公司更換銀行,或者地址甚至是姓名,我們不希望這些更改反映過去的文件。及時保存實體狀態

因此,我們正在尋找解決方案來節省空間,方法是在需要查看時創建文檔。

我想出了一些想法。

1)將第一次創建時所有需要的變量保存到一行中(銀行詳細信息等),並使用該行進行報告創建。缺點:大量的重複數據(銀行細節不會經常變化)

2)正常化像瘋了一樣,並有大約5個額外的表格,引用存儲在主行中的數據。缺點:非常...混亂和很多工作。 3)按時間存儲所有歷史記錄,按日期查找。因此,使用創建日期在某個時間點查找其他表中的變量,方法是每當行更改時創建所有數據的副本。每次有人做出改變時,Con仍會浪費一些數據。

任何想法?

+0

那麼,如果你想存儲舊的數據 - 你確實要使用更多的存儲空間......如果你需要這樣做,這是一個「浪費」的討論點......你可以看看慢慢改變維度表保留所有值的歷史記錄。存儲是便宜的,當然你不會擔心保持數據的變化?如果您擔心 - 嘗試使用多層存儲,將最新數據「熱」存儲在快速存儲上,而一些便宜的慢速大容量存儲保留「冷」存檔數據 – Milney

回答

0

準確性和性能需要成爲您的主要關注點。存儲是第三位。

無論是存儲所有的值來填充文檔中的變量(不要忘了包括文檔的版本)

或版本的所有變量和點源到每個版本這是在文件中使用的。這實際上是一個緩慢變化的維度。

您的最佳選擇取決於文檔與源數據更改的比率。我的假設是,你將擁有比銀行數據更多的文件。在這種情況下,我認爲第二個選擇是最具擴展性的,將會有最佳的性能,並且可能會使用最少的空間長期。