Как лучше хранить данные в базе MySql

Тема в разделе "Базы данных", создана пользователем garizlo, 8 сен 2009.

Статус темы:
Закрыта.
Модераторы: latteo
  1. garizlo

    garizlo Постоялец

    Регистр.:
    16 сен 2006
    Сообщения:
    104
    Симпатии:
    23
    Всем привет.

    Суть следующая, делаю мини-магазинчег, сделал таблицу "products" в которую добавляю основные параметры добавляемого товара, такие как например: Название, описание, кейворды, дескрипшены, и.т.д...
    При добавлении товара можно так же добавить картинки к товару, скажем до 10 штук.
    Вопрос в том, как лучше хранить данные (названия картинок в базе)?!

    Сделал таблицу: "images_for_products" и теперь не знаю, как лучше сделать.

    Либо хранить массив названий картинок обработанный при помощи serialize, например так:
    Таблица "images_for_products"
    Поле "id" - autoincrement
    Поле "product_id" - id добавляемого продукта
    поле "images_data" - массив обработанный при помощи serialize

    Или же вставлять в базу данные по каждой картинке для продукта:

    Таблица "images_for_products"
    Поле "id" - autoincrement
    Поле "product_id" - id добавляемого продукта
    поле "image" - image_1.jpg

    Поле "id" - autoincrement
    Поле "product_id" - id добавляемого продукта
    поле "image" - image_2.jpg

    и.т.д..

    Посоветуйте, как лучше сделать?
     
  2. studentpm

    studentpm

    Регистр.:
    8 ноя 2006
    Сообщения:
    184
    Симпатии:
    132
    Оба подхода имеют права на жизнь. Только в случаи с сериалайзом не нужно создавать отдельную таблицу.
    Единственные что могу сказать при отдельной таблице удобнее управлять картинками товаров и делать определенные выборки (например добавить метки размеров и выбирать только нужные). Ну и при построении общего списка товаров подтянуть картинку будет проще - не нужно будет делать кучу ансериалайзов, что в итоге скажатся на производительность.
     
    garizlo нравится это.
  3. lolhoha

    lolhoha Постоялец

    Регистр.:
    8 мар 2009
    Сообщения:
    148
    Симпатии:
    15
    лучше сделать одну таблицу для всех картинок модулей сайта, как то так:
    Images
    ImageId (autoincrement)
    Name (имя картинки)
    Image (название картинки с расширением)
    ProductId (для каталога товаров)
    Id (для других модулей)
    Order (для порядка вывода, если делать лист картинок)
     
Статус темы:
Закрыта.