讨论:把图片放在数据库里和把图象放在文件里个有那些优缺点。-视讨论问题情况加分最多加300分

luhongjun 2001-05-11 12:48:00
条件:

我要做一个管理程序开发语言使用BCB5.0,数据库使用MS SQL7.0,数据量是120万记录
每个图片的大小是83K,图片格式为.jpg,要求每条记录对应一张照片。

问题:
是把图片放到数据库的Image字段中,还是放在文件了。

我感觉到的两种方法存在的问题:
1:使用数据库存储
1、查询速度会很慢
2、并且数据库会迅速变得庞大起来。
2:使用.jpg文件存储
1、文件不安全,很容易被修改,替换,删除。
2、在其他机器上使用此图片时必须映射网络盘符,实际应用存在很多问题。

请各位高手广泛讨论,谢谢合作。谁的讨论可以彻底解决问题,在另行加分,决
不食言。

本帖子最高分可加到300分。
回答精彩另外可开帖加分,最高分也是300分。





...全文
1600 82 打赏 收藏 转发到动态 举报
写回复
用AI写文章
82 条回复
切换为时间正序
请发表友善的回复…
发表回复
wyb_star 2001-10-07
  • 打赏
  • 举报
回复
?
wyb_star 2001-09-23
  • 打赏
  • 举报
回复
?
iif 2001-09-20
  • 打赏
  • 举报
回复
关注
wyb_star 2001-09-11
  • 打赏
  • 举报
回复
我这些日子在做一个软件,每个记录存20M大小的文件(以流的方式存进去的),一样没问题(无论记录多少),而且速度非常快!可20M以上的文件我就存不进去了,谁能解决?
(最好能存一个100M以上,而且是一条记录一个字段中,在sql server中)。
alang_xy 2001-09-04
  • 打赏
  • 举报
回复
学习.
ccaolii 2001-08-03
  • 打赏
  • 举报
回复
有事常联系,对不起!
wyb_star 2001-05-27
  • 打赏
  • 举报
回复
to:luhongjun(过江项羽) ;
我在长春。邮箱:wyb_star@sina.com
icq:44271719
有问题常联系。
luhongjun 2001-05-23
  • 打赏
  • 举报
回复
给分
luhongjun 2001-05-22
  • 打赏
  • 举报
回复
继续,还有没有好建议,不然要结贴了。
luhongjun 2001-05-20
  • 打赏
  • 举报
回复
你跟那几个人还能学到什么,还不若到CSDN来看看。
火鸟33 2001-05-20
  • 打赏
  • 举报
回复
我的观点:
1,如果用自己写的文件操作,没有从数据库中操作快;
2,图片表单独放,需要时再读取,没必要一下拉下来。
luhongjun 2001-05-20
  • 打赏
  • 举报
回复
wyb_star(孤星):你是谁?吉林省?
wyb_star 2001-05-20
  • 打赏
  • 举报
回复
jiangwind(离开) luhongjun(过江项羽) 
我是做吉林省的做清华紫光的全国机动车驾驶员的查询程序的,
.....同行同行
wyb_star 2001-05-20
  • 打赏
  • 举报
回复
 回复人:luhongjun(过江项羽):
jiangwind(离开):
你在做清华紫光的全国机动车驾驶员的查询程序?
见到同志了
luhongjun 2001-05-19
  • 打赏
  • 举报
回复
jiangwind(离开):你在做清华紫光的全国机动车驾驶员的查询程序吧,你是哪个省的?




jiangwind 2001-05-19
  • 打赏
  • 举报
回复
不会吧,项羽老兄,在这还能遇上同行啊。

是啊,就是那个东东,我云南省的。你是?
孩皮妞野 2001-05-18
  • 打赏
  • 举报
回复
对呀! 压JPG搞不好越压越大。
rh 2001-05-18
  • 打赏
  • 举报
回复
rar没有这么猛吧?不过比zip厉害一些……
jiangwind 2001-05-18
  • 打赏
  • 举报
回复
sorry来晚了,这两天省来了个专家,为我单位VB做了一个数据库转换的程序,把FOXPRO的DBF转成ACCESS的MDB,最后再变成ORACLE的后台库,为WEB查询提供数据,我跟着学了学。
两天下来,除了觉得非常麻烦以外,再无收获。

TO:yeqiufeng(叶秋枫)
压缩后加入库中,相信也有人动过同样的念头,比如我。但是JPG本来就是压缩过的,不管是用ZIP还是RAR,都没有太大变化。

这里是我的代码,很简单,希望能引出玉来:(vfp6)

ls_jpg=getfile('jpg','选择图象文件','确定',2)
if ls_jpg=' '.or.ls_jpg=''
then
return
endif

li_file=fopen(ls_jpg)
store fseek(li_file,0,2) to gnEnd
=fclose(li_file)
li_file=fopen(ls_jpg)
gcString=fread(li_file,gnEnd)
=fclose(li_file)
do while.not.rlock()
enddo
repl Field with gcString
unlock all

大致就是这样了,显示时倒过来就行,将字段内容写为文件。
在vfp下,如果不是这样做,作为通用字段加入库里,一条记录就大得不可思议。

:个人意见,
库中:1、数据安全;2、方便管理;3、方便开发;
1、库将变得庞大;2、影响速度
库外:1、数据不安全;2、不方便管理;3、增加开发工作强度
2、库文件娇小可爱;2、查询、统计时速度一流

但作为数据库来讲,我觉得还是放进去比较好。

BTW:和专家谈了谈,我提起这个问题,这个23岁的专家(精通VB、PB、ORACLE)一愣,自然反应就说,当然放进去,好象也不是很大,那个JPG有多大,字段就有多大,这好象不是问题嘛。

唉,我想,一个MEMO字段,加入IMAGE后,就成了几十K,甚至上百K。
难道IMAGE的问题就没有一个完善的解决方案么?
孩皮妞野 2001-05-18
  • 打赏
  • 举报
回复
秋枫的意思还是放在库外,管理上不会很麻烦吗?
加载更多回复(62)

1,178

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 数据库及相关技术
社区管理员
  • 数据库及相关技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧