singlepost

База данных с большим количеством полей << На главную или назад  

Ребята, выручайте советом как можно реализовать следующую фишку.

Есть интернет магазин, и в нем страница добавления товара. Она включает в себя название товара, цену и его характеристики.
Так вот как быть если этих характеристик у товара порядка 150 наименований!??!
При всем при том, что имееются еще и разделы (Габариты, мультимедиа, и т.д.)
Как будет рационально писать их в базу? Делать ли одну таблицу со столькими столбцами, или же както разбить на части.
А потом их еще както надо выдергивать из базы и расставлять по своим местам.

Как все это сделать блее рационально, мобильно и чтобы "давление" на сервер не было большим?

28 ответов в теме “База данных с большим количеством полей”

  1. 8
    Алексей Вишняков ответил:

    Сделай одним=) Используй отложенные=)

  2. 7
    Resident Evel ответил:

    Еще момент!
    Делаю по предложенному второму методу.
    У меня в итоге получается следующая картина:

    <input type="text" name="har[ ]"> – поле для ввода характеристики

    Сохранение введенных данных
    $id_har = $_POST['har']; // где $id_har – это массив

    и теперь получается в цикле делать Инсерт?
    У меня сервер не обидется 80 инсертов делать за раз?
    Или по другому как-то писать в базу?

  3. 6
    Resident Evel ответил:

    ок. спасибо.

  4. 5
    Алексей Вишняков ответил:

    По поводу первого варианта используй JOIN (да и вообще почитай что это такое)

    А вообще делай вторым вариантом

  5. 4
    Resident Evel ответил:

    Думаю если использовать первый вариант, то будет много селектов.
    Будет второй вариант, то получится что база будет иметь мега огромное количество записей.
    Боюсь что select будет долго отрабатываться.
    Придумал такую штуку, правда геморно немного, зато базу не будет переполнять и количество запросов уменьшиться до минимума (по крайней мере мне так кажется :-) ).

    Писать название характеристик, разделенныхпо группам в одну таблицу, а значения писать массивомв другую таблицу.
    В этом случае, если возникнет необходимость добавить характеристику, проблем с уже существующими товарами не возникнет.
    Правда вот над поиском по параметрам придется немного поизощерятся…

  6. 3
    Алексей Вишняков ответил:

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

    или еще как вариант сделать таблицу
    товар_ид | тип_характеристики | значение

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

    второй вариант лучше, если у разных товаров, разный набор характеристик.

  7. 2
    Resident Evel ответил:

    не всегда. но есть и такая вероятность.

  8. 1
    Алексей Вишняков ответил:

    Поиск будет по всем этим 150 параметрам???

Клуб программистов работает уже ой-ой-ой сколько, а если поточнее, то с 2007 года.