什么是将多个文件上传路径保存到数据库的好方法?

t5fffqht  于 2022-10-22  发布在  Mysql
关注(0)|答案(1)|浏览(199)

当我保存多个文件时,我将它们转换为json类型,并将它们保存在Varchar类型的文件列中。
Ex)

标题内容文件
游戏darksoul,M&B,skyrim[“/upload/test1.jpg”,“/upport/test2.jpg“,”/upload/test3.jpg
bookbookbookbook[“/upload/test5.jpg”,“/update/test10.jpg“]

当加载多个文件时,将字符串格式转换回json并将其显示在屏幕上。
我认为这个方法看起来不太好。
因此,我将把文件列从varchar更改为json类型,这样在加载时就不必更改类型。
然而,我认为有一种更好的方法可以在DB中保存/加载多个文件。
如果你知道,请告诉我。。!
非常感谢。
如果您还有任何问题或我的解释是否奇怪,请告诉我。我马上就修好。

toe95027

toe950271#

您确实可以使用JSON数据类型,这样就可以了。
MySQL是一个关系数据库,这意味着数据被放置在具有相同属性的表中,然后通过标识(通常是主键)从其他表中引用其他行。
因此,您可以做的是创建另一个名为fileuploads的表,它将包含列:

  • id(主键,自动递增)
  • path(上传文件的路径,例如“/upload/test1.jpg”)
  • foreign_id(这必须包含问题中显示的表的id)

这样做的好处是,您有一个严格的数据结构。如果你想在不同的文件上传中添加额外的信息,你必须确保这些信息被添加到所有现有的行中。
如果您要在JSON上添加额外信息,这也是可能的,但您会有一个松散的数据结构,这可能会导致应用程序代码中的错误(您不保证“列”存在)。
此外,您还可以选择将标准MySQL特性用于索引、分区等表。
如果我是你,我会将数据类型更改为JSON,然后如果未来需求增加,我会立即重构为一个单独的表。

相关问题