Есть классы, например дом, автомобиль.
У классов есть атрибуты, например площадь, количество дверей у класса дом, вес, количество дверей у класса автомобиль.
Классы и их атрибуты могут добавляться/удаляться/изменяться в зависимости от фазы луны.
Есть объекты, например дом-1 класса дом, площадь 100 м*м, количество дверей 5, автомобиль-1 класса автомобиль, вес 2 т, количество дверей 5. Объекты могут добавляться/удаляться/изменяться в зависимости от фазы луны.
Нужно искать объекты по атрибутам. Запрос «площадь 100 м*м» должен возвращать дом-1. Запрос «вес 2 т» должен возвращать автомобиль-1. Запрос «количество дверей 5» должен возвращать дом-1 и автомобиль-1.
Как это по умному запихнуть в mysql?
Думал как-то так:
classes
------------------
cid|cname
attributetypes
------------------
atid|atname|cid
objects
------------------
oid|oname|cid
attributes
------------------
aid|avalue|oid|atid
Но тут например можно добавить объекту одного класса атрибут от другого. Вообще не покидает ощущение, что я ректально лечу кариес.