DpoHro
Новичок
Произвольные фильтры, параметры для разных типов продукции и поиск по ним. БД проблем
Честно сказать не знаю как толковее назвать тему ))
Вопрос скорее по БД.
Есть некоторые типы продукции, у каждого типа свой набор параметров.
Например, есть некоторые продукты (в широком смысле )) ).
При создании таких продуктов в БД им задаются, как правило, разные параметры (характеристики), а их набор может быть у каждого типа продукта свой и может изменяться.
Нужно сделать универсальную в этом плане систему, чтобы небыло необходимости создавать под каждый тип продукта таблицу со своими параметрами да и с изменением свойств таких параметров я думаю тоже все ясно (лезем в БД), а так же чтобы не нужно было вручную писать запросы под каждый поиск(крайне желательно) )).
Параметры выносим естесственно в другую таблицу, которая связывается с типом продукта.
Чойто я напридумал (простите за мой метаязык в описании таблиц):
table_product_type {id, name}
table_product {id, typeId, name}
table_variable {
id,
productTypeId, // ид типа продукта
typeId // тип переменной (целое, с плав. точкой, выбор из списка, строка)
}
table_variables_values { // таблица со списками возможных значений для переменной типа "выбор из списка"
id,
variableId, // для какой переменной это значение
value, // значение присваиваемое переменной
name // семантика
}
table_product_variable_filters {
id,
variableId,
filterType, // тип фильтра (>,<,>=,<=,!=)
valueInt, // точное значение (int) это же поле можно пользовать если переменная выбор из списка, тогда тут id выбранного параметра
valueFloat, // точное значение (float)
intMin,
intMax,
floatMin,
floatMax
}
Это то что мне приблизительно видится, однако не могу теперь придумать как это все использовать при фильтрации, то есть чето мне запрос не придумать к такой структуре таблиц (((
Поможите люди добрые советом, верной ли дорогой иду и быстро ли такое будет работать?
Тема наверняка довольно широкая, поиск чувствую мне не дает результатов потому, что не знаю как это все назвать и что искать.
Честно сказать не знаю как толковее назвать тему ))
Вопрос скорее по БД.
Есть некоторые типы продукции, у каждого типа свой набор параметров.
Например, есть некоторые продукты (в широком смысле )) ).
При создании таких продуктов в БД им задаются, как правило, разные параметры (характеристики), а их набор может быть у каждого типа продукта свой и может изменяться.
Нужно сделать универсальную в этом плане систему, чтобы небыло необходимости создавать под каждый тип продукта таблицу со своими параметрами да и с изменением свойств таких параметров я думаю тоже все ясно (лезем в БД), а так же чтобы не нужно было вручную писать запросы под каждый поиск(крайне желательно) )).
Параметры выносим естесственно в другую таблицу, которая связывается с типом продукта.
Чойто я напридумал (простите за мой метаязык в описании таблиц):
table_product_type {id, name}
table_product {id, typeId, name}
table_variable {
id,
productTypeId, // ид типа продукта
typeId // тип переменной (целое, с плав. точкой, выбор из списка, строка)
}
table_variables_values { // таблица со списками возможных значений для переменной типа "выбор из списка"
id,
variableId, // для какой переменной это значение
value, // значение присваиваемое переменной
name // семантика
}
table_product_variable_filters {
id,
variableId,
filterType, // тип фильтра (>,<,>=,<=,!=)
valueInt, // точное значение (int) это же поле можно пользовать если переменная выбор из списка, тогда тут id выбранного параметра
valueFloat, // точное значение (float)
intMin,
intMax,
floatMin,
floatMax
}
Это то что мне приблизительно видится, однако не могу теперь придумать как это все использовать при фильтрации, то есть чето мне запрос не придумать к такой структуре таблиц (((
Поможите люди добрые советом, верной ли дорогой иду и быстро ли такое будет работать?
Тема наверняка довольно широкая, поиск чувствую мне не дает результатов потому, что не знаю как это все назвать и что искать.