我希望我的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。 –