当我保存多个文件时,我将它们转换为json类型,并将它们保存在Varchar类型的文件列中。
Ex)
标题 | 内容 | 文件 |
---|---|---|
游戏 | darksoul,M&B,skyrim | [“/upload/test1.jpg”,“/upport/test2.jpg“,”/upload/test3.jpg |
book | bookbookbook | [“/upload/test5.jpg”,“/update/test10.jpg“] |
当加载多个文件时,将字符串格式转换回json并将其显示在屏幕上。
我认为这个方法看起来不太好。
因此,我将把文件列从varchar更改为json类型,这样在加载时就不必更改类型。
然而,我认为有一种更好的方法可以在DB中保存/加载多个文件。
如果你知道,请告诉我。。!
非常感谢。
如果您还有任何问题或我的解释是否奇怪,请告诉我。我马上就修好。
1条答案
按热度按时间toe950271#
您确实可以使用JSON数据类型,这样就可以了。
MySQL是一个关系数据库,这意味着数据被放置在具有相同属性的表中,然后通过标识(通常是主键)从其他表中引用其他行。
因此,您可以做的是创建另一个名为
fileuploads
的表,它将包含列:id
(主键,自动递增)path
(上传文件的路径,例如“/upload/test1.jpg”)foreign_id
(这必须包含问题中显示的表的id)这样做的好处是,您有一个严格的数据结构。如果你想在不同的文件上传中添加额外的信息,你必须确保这些信息被添加到所有现有的行中。
如果您要在JSON上添加额外信息,这也是可能的,但您会有一个松散的数据结构,这可能会导致应用程序代码中的错误(您不保证“列”存在)。
此外,您还可以选择将标准MySQL特性用于索引、分区等表。
如果我是你,我会将数据类型更改为JSON,然后如果未来需求增加,我会立即重构为一个单独的表。