数据库存用户头像只存文件名和存完整 URL 哪个好?

2024-05-12 23:23:43 +08:00
 fgt1t5y

哪种好?

9459 次点击
所在节点    MySQL
59 条回复
helone
2024-05-13 09:20:28 +08:00
肯定 1 咯,楼上说的多个 OSS 的情况再新增一个 bucket 字段呗,国内这种网络环境,无论是批量更换 CDN 地址或者域名被封都能很快解决
guanzhangzhang
2024-05-13 09:23:19 +08:00
找找 uid+头像上传时间 生成短链的
QlanQ
2024-05-13 09:31:42 +08:00
存完整的 URL
c0mmand
2024-05-13 09:33:16 +08:00
@ShinichiYao #12 +1
Tink
2024-05-13 09:35:50 +08:00
我觉得还是对象存储吧,存 1
iyiluo
2024-05-13 09:37:53 +08:00
肯定第一种好,数据冗余低,信息密度高,迁移也方便
kenvix
2024-05-13 10:40:51 +08:00
我的做法是写两个字段,filename 和 storage_provider ,这样的做法的好处是只存我文件名就行,并且如果后续需要新的基础路径或者存到 OSS/S3 上,那开个新的 storage_provider id 就行了
opengps
2024-05-13 10:47:21 +08:00
存路径,毕竟很有可能将来改成对接对象存储来存储头像,到时候的路径就要改成个网址了
wuhao1
2024-05-13 10:54:00 +08:00
选 1,选 2 这不是我正经历的么?
老系统:直接 uid.jpg 图片路径都不需要存 如果要调图片(直接饮用传参过来的 id 直接可以得到路径,少查一次数据库,又节省 了数据库的空间
新系统:有存路径,( oss 的路径,优点:不需要拼装直接从数据库读取地址(也就是上面的 缺点

我以为第一种更优秀 但是团队协作需要包容更多
iosyyy
2024-05-13 11:23:22 +08:00
@aru 2 扩展起来不更麻烦 你以后如果要把图片都上到云还都得改 而 1 只需要重写个类改下返回值就能直接用
julyclyde
2024-05-13 11:40:53 +08:00
@ShinichiYao 为啥要把数据膨胀三分之一存进去呢?
hhhzccc
2024-05-13 11:41:23 +08:00
MySQL 存 id 号。OSS 存内容。用的时候作下关联。
JackLiang
2024-05-13 11:48:07 +08:00
文件放 oss 省心
saranz
2024-05-13 11:48:16 +08:00
这个应该是结合自己的业务需求,如果量级小,那全路径也无所谓。
但如果业务量大,多一个字符都是浪费。所以连后缀都可以由代码生成。
ShinichiYao
2024-05-13 11:55:29 +08:00
@julyclyde 不是把字符串 base64 ,是把图像文件二进制 base64 存进去
julyclyde
2024-05-13 11:56:22 +08:00
@ShinichiYao 对啊,你为啥要把图像额外 base64 一步?数据库 blob 字段直接用不就得了?
RainyH2O
2024-05-13 12:19:12 +08:00
存储的本质就是选择用什么数据结构当容器存数据罢了,1 就是当作集合,2 就是当作树。实际上不分路径按一定的规范取文件名、给文件分类到不同文件夹、给文件加标签,这些都是当作树存储。选择外部存储也无非是把树结构的信息存到外部罢了。想清楚树结构的信息放到哪最能接受就可以。
Building
2024-05-13 12:58:09 +08:00
头像不是和 id 或者其他字段关联的吗?不用额外记
adoal
2024-05-13 13:32:34 +08:00
头像上传之后按用户 id 编制文件名保存到对象存储。
mangojiji
2024-05-13 13:50:18 +08:00
这取决于图片是怎样被读取的吧?
如果图片路径是前端上写死的,那只存名字可以啊。
如果图片路径是后端下发的,那存完整 URL 或者相对路径都可以。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1040087

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX