0

PHP と MySQL (フレームワーク Symfony 2 経由) を使用して、コレクションのいくつかのバイクを表示する Web サイトを作成しています。1 台の自転車に必要なだけの画像を保存したいと考えています。

そのための良い方法は、自分の Bike エンティティと Picture エンティティを持ち、Bike エンティティPicture エンティティを1 対多の関係でリンクすることだと考えていました。

したがって、Picture エンティティは次のようになります。

id     bike_id    title   path

これが最善の方法ですか?アドバイスありがとうございます。

EDITサムネイルの保存について..
サムネイルのバージョンも保存する必要がありますか?1 ページに多くの画像を表示するので、画像の幅と高さを縮小することは悪い習慣であり、画像の縮小版を保存する方がよいと読みました。

では、Picture エンティティは次のようになりますか? :

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このようなエンティティと写真の間に関係が必要です

Picture.php

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

次に、画像ごとに 1 つの行を持つことができ、単一の画像の場合と同じようにsymfony の画像アップロードを使用できます。

于 2013-01-21T02:51:51.310 に答える