日期:2014-05-16  浏览次数:20721 次

文件放在哪里比较合适?
我的数据库中供应商及合同会关联到一些文件,如:合同文本照片、PDF合同附件以及供应商的资料文件(PDF、DOC等),文件的大小从100k到几十兆不等。请问这些文件如何关联到我的数据库字段,小文件可以存放于image字段,但是大的文件呢?谢谢指点并给出具体实例。
------解决方案--------------------
2008的话,对于平均大小超过1M,并且读操作相对很频繁的,可以使用filestream功能。如果不是2008或者大小很小,可以独立一个文件夹到Windows上,然后sqlserver只存路径,由应用程序去sqlserver找路径再处理文件。一般不建议直接存二进制数据到数据库中
------解决方案--------------------
文件夹可以直接存放在电脑磁盘上。数据库存储路径。在程序中调用路径就OK了。这样的例子在网上很多。楼主可以去BAIDU一下。
------解决方案--------------------
每个文件存一条记录到数据库,内容是【相对】路径
按分类、记录id存放到对应的子目录
【根】目录可以通过一个配置得到,方便搬移
------解决方案--------------------
需看具体的系统架构而定,

 BS系统,建议数据库只存文件路径.

 CS系统,建议把文件以二进制数据存在数据库中,并以单独的表存在.
------解决方案--------------------
这种文件,建议放到服务器的目录中把,尽量不要放到数据库中,在数据库中最好只存储文件的路径。

------解决方案--------------------
引用:
Quote: 引用:

需看具体的系统架构而定,

 BS系统,建议数据库只存文件路径.

 CS系统,建议把文件以二进制数据存在数据库中,并以单独的表存在.

如果文件较大的话(例如:10M以上),放在数据库中是否合适?我构建的是CS系统。我现在是把文件存放于数据库中(只有几十k)单独的一个表,但是,以后会碰到很大的文件!
不建议把10M的文件放到数据库里面,存文件吧
------解决方案--------------------
存文件路径吧
------解决方案--------------------
大文件建议不要存在数据库中,要不数据库会很大,到时候备份什么的都麻烦。
------解决方案--------------------

create table r(id varchar(32) ,  rfile varchar(60)) 
go
insert into r(id , rfile) values('123456798','\cfile.jpg')