我有两个文件需要上传到Sql数据库。每个文件都有自己的表。
File1: filename.zip (of course a compressed file)
File1: filename.asc (flat tab delimited file)
我正在用C#编写,我正在创建一个服务,通过它将这些文件发送到数据库。
保存这些文件的最佳方法是什么?
我应该以不同的方式保存它们,因为它们是两种不同类型的文件,或者我可以使用File.ReadAllBytes
来保存它们吗?
我正在创建表,服务和连接到服务器的应用程序,因此我可以完全控制数据类型。我已经开始了这个过程,但我并不是100%确定我有这个正确的。
这就是我创建表格的方式:
正如我之前所说,如果需要,我可以更改数据类型。现在我打算把它们变成二进制。这样做有不利之处吗?
我只是对处理此问题的最佳方法提出了一些指导。
一如既往地谢谢!
进行追加
我想补充一点,这些文件的大小通常不超过12kb。
答案 0 :(得分:2)
如果文件非常小(每个少于8000个字节),则可以将它们保存到BINARY
或VARBINARY(MAX)
类型的列中,但大多数文件很容易超过该大小。
也就是说,SQL Server确实提供了一种通过FILESTREAM data type, the File Table or the Remote BLOB Storage在数据库中存储文件的机制。
另一个注意事项是,虽然你的问题不是很清楚,但为每个文件分别设置表通常不是设计数据库的正确方法。如果您使用类似的语义存储类似的信息,那么关于文件的实际情况应该是一个包含多行的表,每个文件都有一行。