我正在使用 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/