Менеджера опций - дополнительные поля у об'ектов

4LF

Новичок
Менеджера опций - дополнительные поля у об'ектов

Интересуюсь темой менеджера опций.
Каждый об'ект имеет field_set_id — набор доп. полей:


Но вот какие вопросы возникают
если необходимо организовать сортировку по какому-то доп. полю
вопрос решается: есть главная таблица object и таблица с расширенными полями add
object
id
data

add
id
object_id
name
value

запрос, сортирующий по определенному доп. полю выглядит примерно так:
PHP:
SELECT `object`. * , `add`.`value` AS `price`
FROM `object`, `add` 
WHERE `object`.`id` = `add`.`object_id` AND `add`.`name` = 'price'
ORDER BY `price`
но этот запрос не позволяет сразу же вернуть еще и все доп. поля
---------------------
Еще есть одна идея реализации доп. полей — для каждого field_set создавать отдельную таблицу в БД. Создать единый обработчик этих таблиц (option manager), тогда проблема с сортировками отпадает + все доп. поля при сортировке можно будет вытащить за один запрос.

Покритикуйте, посоветуйте что-нибудь.
 

Necromant

Новичок
Из таблицы value убрать object_id и перенести в таблицу key
И зачем field_set_id в талице с объектами ??
 

4LF

Новичок
Автор оригинала: Necromant
Из таблицы value убрать object_id и перенести в таблицу key
Значения привязаны же к об'екту. А если перенести object_id в key, что получится?
Здесь реализована возможность указать об'екту имя набора полей, который может включать в себя N доп. полей (лучше сформировать один раз "набор полей" и потом назначать его об'ектам).

Автор оригинала: Necromant
И зачем field_set_id в талице с объектами ??
Об'ект должен знать какой у него "набор полей" или я чего-то не монимаю...
 

Necromant

Новичок
Начнем с простого,
таблица - Поля:
Object - id , name
Key - id , obj_id, name
Value - id , key_id, value

Простая понятная структура.
 

4LF

Новичок
Object - id , name
Key - id , obj_id, name
Value - id , key_id, value

Необходимо для товар1 (или для категории товаров) добавить доп. поле вес
Для товар2 добавить доп. поле мощность
Для товар3 добавить доп. поле вес

что будет с таблицей Key?
Запись (id, obj_id, name):
1, 10, weight
2, 20, power
3, 30, weight

Мне казалось это свзяь M:N

Вообщем я хотел бы услышать вызможные способы решения
 

Necromant

Новичок
да , таблица Key для названий полей.
Это и есть самый простой способ решения.
 

4LF

Новичок
Автор оригинала: Necromant
да , таблица Key для названий полей.
Это и есть самый простой способ решения.
Да с sql запросами нет сложности ни в 1 ни в 2 варианте ( в 2 - каждый набор полей - новая таблица прощще конечно).
 
Сверху