2012-11-19 63 views
1

我想設計一個C#應用程序來存儲emlployees數據,我有大約500名員工。我想存儲每個員工的pdf掃描配置文件。我打算使用PostgreSQL。將pdf掃描的配置文件存儲在數據庫中是否實用?我需要使用blob數據類型嗎?將pdf文件存儲在數據庫中

+3

你真的需要將它們存儲在數據庫中?它可以快速增長。你能不能在本地存儲它們,但將文件路徑存儲到它們? – Arran

+0

脫離主題,但是員工被通知他們將他們的信息存儲在數據庫而不是紙上? – user1378730

+1

http://stackoverflow.com/questions/662488/would-you-store-binary-data-in-database-or-in-file-system – jwaliszko

回答

3

假設PDF不會很大(大概不到5MB我假設),你流這個文件沒關係。您應該使用BYTEA類型。

瞭解更多關於如何使用Npgsql: .NET Postgresql driver(滾動二進制數據和數據類型BYTEA工作

+0

但你需要在發送到DB之前轉義/編碼二進制數據,然後在取回數據後做相反處理,這是額外的緩衝區來處理和緩衝區從C#分配 –

+0

不,如果你正確地使用它 – mvp

+0

是真的,但至少你需要編碼和解碼,每次你想使用這個文件,如果你在大環境下經常訪問這個文件可能會有問題 –

2

是的,您需要將它們保存爲BLOB對象或bytea或文本類型,並且您需要考慮Postgres對此的限制。每個條目有限的2G,&每個數據庫有40億個blob,每個條目限制爲1G,bytea或文本每表40億條目,但如果我是你,我將在數據庫中保存對此文件的引用「位於本地文件系統」,一旦需要

PostgreSQL的限制查看以下鏈接http://wiki.postgresql.org/wiki/BinaryFilesInDB

相關問題