Я над этим вопросом уже давно думал, и мне кажется что самым эффективным способом для обынчных бд типа mysql, будет отдельная таблица в которой будут добавляться поля вместе с атрибутами, если по ним нужен поиск. А если не нужен то можно как вы предложили.