跟各位 V 站 大佬请教下。
1.一般对于网站系统中上传的文件,需要在数据库中建立单独的数据表来记录全部的上传操作吗?
2.在数据表中,上传文件的字段一般如何存储?是直接存文件的相对路径,还是 关联文件上传记录的 id,或者还有其他更好的方案吗?
emmm,目前我自己一般是先给一个上传文件的记录数据表,然后在数据表需要关联上传文件的字段存储记录 id。 这样的做法,我个人感觉稍微会更好管控一些,也方便迁移。 缺点就是每次查询都需要单独查询文件的相对路径(或者 left join )。
那大佬们 一般是怎么处理 呢 ?
1
gz911122 2019-08-01 12:10:55 +08:00
存路径就可以用了
没必要多连一次表 |
2
wingyiu 2019-08-01 12:56:28 +08:00
方案二会更好些,文件可以单独作为一个基础服务的,文件元数据管理着具体是存在哪(磁盘或者分布式对象存储)
|
3
julyclyde 2019-08-01 15:36:43 +08:00
首先,不要存数据库里
|
5
CallMeReznov 2019-08-01 15:43:29 +08:00
存放在网站本地或者开存储存放
放数据库这种操作后期维护是要被打死! |
6
msg7086 2019-08-01 15:51:49 +08:00 1
我文件直接存数据库里,省了很多事,从此再也不用不停备份文件了。
|
7
sunjiayao 2019-08-01 15:55:11 +08:00
单独建张表。记录文件路径 原始名 大小 上传人等信息。封装下,并不费事
|
10
annielong 2019-08-01 17:31:16 +08:00
存数据库是指二进制存在数据库字段中,不过个人一般都是用在 C/S 下,B/S 下都是存独立文件,数据库只存路径
|
13
Rorysky 2019-08-01 18:47:09 +08:00 via iPhone
没记错 mysql 有专门的二进制存储 方案
|
14
jaskle 2019-08-01 18:47:36 +08:00 via Android
主要是放在数据库里你就用 cdn 就费事了,而且白白浪费数据库 cpu 和带宽。
|
15
keepeye 2019-08-01 18:47:50 +08:00
搞一张表存储文件 id,文件 id 中包含路径
|
16
starsriver 2019-08-01 18:58:04 +08:00 via Android
转换为 blob 或者 bs64.
|
17
jorneyr 2019-08-01 21:01:36 +08:00
我们存储文件的绝对路径,和访问文件的 URL (文件先上传到临时文件夹,正式提交表单的时候移动到文件仓库的文件夹下),文件可以通过 Web Server 来访问,也可以通过 Nginx 直接访问静态文件。
|