我希望我的C#應用程序允許客戶端上傳和下載音頻文件,並且它們必須存儲在數據庫中。我應該使用哪種SQL Server中適合的數據類型?用於在SQL Server數據庫中存儲音頻文件的數據類型?
0
A
回答
1
用的EntityFramework CodeFirst的byte []會自動映射到VARBINARY(最大值)
public class AudioFile
{
//TODO: DB generated
[Key]
public int ID { get; set; }
//This will automatically map to varbinary(max)
public byte[] FileData { get;set; }
public string LocalFileName { get;set;}
public string MIMEType {get;set;}
}
雖然您使用的是一般的byte []存儲,您可以使用類專業化添加更多的封裝。實際的FileData字段不需要任何Audio數據類型。
public partial class AudioFile
{
public void Play()
{
//TODO
}
}
剛剛的SQL Server的思考和最好的數據類型
VARBINARY(最大值)是用來存儲二進制數據的所有文件類型的最佳類型。這不包括對FileStreaming的考慮,也不包括將文件單獨存儲到文件夾中。
Varbinary限制 - 如果您打算存儲大量這些音頻流,並且您正在使用SQL Server Express,則很快就會達到10GB的限制。您可以繼續使用更多數據庫進行分區,但通常將文件數據存儲在數據庫字段中是個不錯的主意。
如果您剛啓動原型應用程序或第一個版本,請保持範圍不變。
FileStream是一個不錯的選擇。在SQL Server上進行配置需要一點時間,如果這是您的第一次。
但我經常選擇我自己的文件夾。這是在Web應用程序上下文,其中一個可以直接公開該文件的文件夾的靜態文件下載和CDN緩存(取決於信息的敏感性)要簡單得多。
結論:
- 出簡單的領域,最好的選擇是VARBINARY(最大值)
- VARBINARY(最大)也是最快的得到持續
- 以後可以當轉換它會成爲一個問題,但我相信你的構建不僅僅是一個AudioFile Data Store,而且應該首先構建更多其他重要功能。
相關問題
- 1. 用於存儲大型JSON的SQL Server數據庫中的數據類型
- 2. 哪種數據類型可用於在SQL Server 2005中存儲視頻
- 3. 將音頻和視頻文件保存在SQL Server數據庫中
- 4. 用於在數據庫中存儲不同文件的數據類型
- 5. 將音頻文件存儲在數據庫中
- 6. 如何將'wav'音頻文件存儲在mysql數據庫中?
- 7. SQL Server 2012 FileTable-是存儲在數據庫中的文件嗎?
- 8. 音頻元數據存儲
- 9. 計算SQL Server sql_variant數據類型用於存儲固定長度數據類型的存儲空間
- 10. 數據庫存儲音頻文件的建議?
- 11. 基於平面文件的數據存儲與SQL數據庫
- 12. 用於在數據庫中存儲加密密鑰的數據庫類型
- 13. 將文件存儲在SQL Server數據庫中
- 14. 從Excel文件中提取數據並存儲在SQL Server數據庫中
- 15. 存儲文件的數據類型
- 16. 數據類型使用存儲在SQL
- 17. 設計一個用於存儲音頻文件標籤的數據庫
- 18. FluentNHibernate映射設置 - SQL Server數據庫中的文件存儲
- 19. SqlException超時在存儲文件的SQL Server 16G數據庫
- 20. 如何將表數據存儲在SQL Server數據庫中?
- 21. 用於在SQL Server中存儲字符串的最佳數據類型?
- 22. 音頻數據包類型
- 23. 哪種數據類型最適合在SQL數據庫中存儲文章?
- 24. 存儲圖像,音頻文件到Java數據庫與Java
- 25. 如何在Android中將音頻/視頻文件存儲到SQLite數據庫?
- 26. 在數據庫中存儲任意類型的文件
- 27. 什麼數據可以存儲在SQL Server中的varbinary數據類型?
- 28. 用於存儲URL的數據類型
- 29. 用於在postgresql數據庫中存儲erlang pids的數據類型是什麼?
- 30. 用於在oracle數據庫中存儲經度和緯度的數據類型
c# - 字節數組,數據庫 - varbinary。 –