2013-12-08 3 views
0

Представьте, что у нас есть интернет-магазин. Нам нужно хранить изображения, связанные с продуктами где-то на сервере. Мы уже знаем, что лучше хранить изображения в файловой системе и сохранять ссылку в БД.Как сохранить несколько изображений на сервере?

Вопрос заключается в том, что это лучший способ, чтобы соединить изображения в файловой системе с продуктом в БД:

Я имею в виду:

  1. сохранить ссылку на уникальную папку динамически созданной для этого продукта в DB (fe непосредственно в таблице продуктов)

  2. создать новую таблицу в db (что-то вроде product_and_images), где мы будем хранить информацию об идентификации продукта и идентификации изображения, а таблица будет использоваться для всех пр oducts

Спасибо за все ваши ответы и извините за мой ужасный английский :)

+0

На мой взгляд, вы должны иметь " Папка ProductPictures на сервере и Таблица продуктов в вашей базе данных с столбцом с именем «PicRef», который содержит имя файла с расширением файла. Но вы должны назвать файл как product_id (1.png, 2.jpg) –

+0

I предположим, что если изображения невелики, чтобы хранить их в кодировке base64 (поэтому регулярные SQL-запросы могут показать их без искажения вывода), если они ar e большой, чтобы сохранить их как файлы – nrathaus

+0

@Omer Eldan: Но мне нужно сохранить ссылку на несколько изображений для одного продукта. – BigT

ответ

0

Это всегда лучше, чтобы поддерживать отдельную таблицу и использовать внешний ключ ссылку

+0

Итак, вы имеете в виду, что вариант 2 лучше подходит? – BigT

+0

Да, когда вы используете РСУБД, всегда лучше добиться нормализации. Также легче будет использовать справочное обслуживание с использованием внешнего ключа. –

+0

, о том, как иметь отдельную таблицу и другую таблицу для определения того, как обе они включают идентификаторы из обоих, отбрасывая ссылку на внешний ключ один на другой. Является ли эта идея лучше? –