mysql - 为一个实体提供许多图像和(缩略图?)的最佳方式是什么?

标签 mysql database database-design symfony

我正在使用 PHP 和 MySQL(通过框架 Symfony 2)创建一个网站来展示我收藏的一些自行车。我想存储一辆自行车所需的尽可能多的图像。

所以我认为一个好方法是拥有我的 Bike 实体Picture 实体 并通过 a 将 Bike 实体与 Picture 实体链接起来一对多关系

因此,Picture 实体将如下所示:

id     bike_id    title   path

这是最好的方法吗?非常感谢您的建议。

编辑:关于存储缩略图..
我们是否也必须存储缩略图版本?由于我将在一页中显示许多图片,因此我了解到减少图片的宽度和高度是一种不好的做法,最好存储图片的缩小版本。

那么 Picture 实体宁愿看起来像这样? :

id     bike_id    title    path     path_thumbnail

再次感谢

最佳答案

是的,虽然你可以 通过废弃 path 并将图像存储为 {id}.jpg,简化图像命名并避免命名冲突。

更新 - 从您的编辑来看,我认为您错过了我所说的有关命名图像的要点。我建议您根本不要存储任何图像或缩略图 URL。相反,只需有一个如下所示的表格:

Id    BikeId    Title
277   123       "Cool picture"

然后根据其 Id 命名所有图像和缩略图文件。在上面的示例中,“酷图片”文件可以称为 /img/277.jpg/img/277-thumb.jpg

这样您就不必在数据库中存储大量文件名,而且也不会有任何文件名冲突的问题。

关于mysql - 为一个实体提供许多图像和(缩略图?)的最佳方式是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14428278/

相关文章:

mysql - mysql join 和 where AND 的问题

php - Eloquent ORM 不使用关系 laravel 获取数据

php - 在多个不相关的表上分隔 PHP/PDO 执行结果

php - 查找数据库中与最多关键字匹配的记录

database - 一个 5MB 的 SQL 数据库可以存储多少数据?

php - 从数据库获取记录值并将其内爆

database - TRC 和 DRC 架构之间的区别?

php - Codeigniter,插入 ID

mysql - 是拥有一张大 table 更好还是应该使用几张 table ?

database-design - 如何为 Google Calendar 设计表格结构,如重复功能?