Скажем в базе данных существуют таблицы (они же описывают некие обьекты, либо части обьектов):
table1
* id1
type1 col2
type1 col3
table2
* id1
type2 col2
type2 col3
table3
* id
type3 col2
Стоит задача написать общий механизм "фильтров". Что бы можно было применить фильтр на любом другом объекте:
К примеру, создать такое правило: данный обьект валиден, если имеется ((table1.id=X) and (table2.id=Y)) or (table2.id=Z AND table3.id=X1)
Простой способ реализации мне в голову прищёл такой:
filter.filters
*filter_id
filter.items
*item_id
fk_filter_id
table1_group_id
table2_group_id
table3_group_id
...столько, сколько у нас таблиц
table1_groups
*table1_groups_id
table1_group_id
f_col2
f_col3
...
и так далее..
Как по мне, очень не удобный способ, точнее его можно применять, если обьектов не много.
Но уже когда их кол-во приближается к 80ти становится страшнова-то.
Не подскажите ли, как бы данную проблему решить?
К сожалению это достаточно проблематично, т.к. с базой будут работать Nое количество программистов и что они туда в SQL запросы засунут — сам Бог знает.

Данный вариант не подходит, к сожалению