Требуется предложение по организации данных без схемы

Я хотел проверить, планирую ли я использовать возможность хранения «записей erlang» в качестве хранилища без схемы, какое влияние на производительность я окажу.

чтобы быть более ясным:

Мне нужна таблица: человек, возраст, пол, {другие атрибуты, семейное положение, количество детей....} информация о человеке может иметь различные атрибуты. например: если семейное положение не замужем, у меня не будет атрибута количества детей для корреспондента.

Таблица Person должна иметь разное количество столбцов. поскольку Mnesia основана на схеме, я думал о том, чтобы иметь таблицу вроде:

человек, возраст, пол, атрибуты, где атрибут представляет собой список [ключ-значение пары свойств]. это хорошая идея иметь такую ​​схему?

какие оптимизации запросов возможны для таких запросов, как: выбрать всех людей с «Число детей = 2».

будет ли влияние времени ответа на запрос линейным в зависимости от количества записей в таблице и количества атрибутов в каждом списке атрибутов?


person Mahantesh    schedule 17.01.2014    source источник


Ответы (1)


Mnesia может не подходить для того, что вы пытаетесь сделать. В принципе поля столбцов/записи фиксированы. Включение списка ключевых значений дополнительных атрибутов, как вы описываете, обычно выполняется, но это означает, что вы не можете эффективно запрашивать эти дополнительные поля: каждый запрос должен выполнять итерацию по всей таблице, копировать каждую запись и проверять, соответствует ли она критериям .

будет ли влияние времени ответа на запрос линейным в зависимости от количества записей в таблице и количества атрибутов в каждом списке атрибутов?

да.

person legoscia    schedule 17.01.2014