0

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

所以我在想一个好方法是让我的Bike 实体和一个Picture 实体,并通过一对多的关系将 Bike 实体与 Picture 实体链接起来。

所以,图片实体看起来像这样:

id     bike_id    title   path

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

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

所以图片实体宁愿看起来像这样?:

id     bike_id    title    path     path_thumbnail

再次感谢

4

2 回答 2

1

是的,尽管您可以通过将图像报废path并将图像存储为{id}.jpg.

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

Id    BikeId    Title
277   123       "Cool picture"

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

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

于 2013-01-20T19:39:48.430 回答
1

你需要有One to many这样的实体和图片之间的关系

图片.php

/**
     * @ORM\ManyToOne(targetEntity="Bike", inversedBy="images")
     * @ORM\JoinColumn(name="bike_id", referencedColumnName="id")
     */
    protected $Bike;

然后你可以为每张图片设置一行,你可以像处理单张图片一样使用symfony 图片上传

于 2013-01-21T02:51:51.310 回答