我需要能够将多个文件上传到数据库,并将它们与给定表中的给定记录相关联。我最初想到了压缩所有必要的文件,并将结果字节数组作为参数连同剩余的记录数据一起发送到存储过程,这样我就可以确定这起到单个事务的作用,并且检索所有关联的文件与给定的记录将是一块蛋糕。然而,这一计划不被接受性能方面的原因,现在我有两种选择:将文件上传到数据库
创建一个数据结构,它包装的
byte[]
阵列,(二进制)序列化,并与发送沿数据;或先发送剩余的数据,获取记录的ID并单独发送每个文件(将其与给定的ID相关联);
现在,1)看起来太像我的第一个计划,并有可能即使这次没有压缩将参与被拒绝。选项2)似乎是要走的路,但是,我必须保证我将记录的数据和文件都上传到单个事务中,这将迫使我在数据层中进行更改(尽管很轻微)。
如果您遇到此问题,您会选择哪个选项?如果没有上述那些,那么哪一个呢?
编辑:数据库位于远程服务器中。这些文件可以是任意大的,但我不认为它们比1-2MB大。将文件存储在应用程序和数据库服务器均可访问的位置不是一种选择,因此我不能将路径发送到数据库的文件(它们必须真正作为BLOB存储在数据库中)。
这些文件有多大,并且是正在运行的应用程序的本地数据库? –
编辑了这个问题。非常感谢! – DotNetStudent
你真的不想将文件存储在数据库中。 –