Я тщательно исследовал эту проблему.Довольно просто моделировать данные без схемы в СУБД с использованием таблицы «свойств» (по существу, с использованием пар ключ / значение).Сложная часть - это индексирование и запросы к вашим вещам.(По сути, вся сложность, с которой сталкивался Friendfeed, была сосредоточена вокруг этой проблемы.)
Если вы индексируете таблицу свойств, вы получаете индекс для всех свойств.Это нежелательно, так как добавляет слишком много накладных расходов, поскольку вам нужно запрашивать только определенные свойства.Также вам наверняка захочется получить доступ к вашим вещам через составные индексы.Моделировать составные индексы невероятно сложно.Единственные решения, которые я нашел, требуют, чтобы вы строили свои собственные индексы, используя схему только для этой цели - очень громоздко.Чем больше я смотрел на него, тем менее практичным он выглядел.
Хорошее решение этой проблемы заключается в использовании частичных индексов (иначе говоря, фильтрованных индексов).