чтение таблиц мнезии, где ключ - это кортеж, а критерий поиска содержит подчеркивания '_' - PullRequest
0 голосов
/ 17 декабря 2010

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

-record(idx,{key,value}).
...
Invoice = 1,
Date = now(),
K1 = {?NORMAL_TYPE1,Invoice,Date},
mnesia:write(#idx{key=K1}).
...

Итак, вопрос в том, что ... если я знаю только номер счета, могу ли я получать данные из БД в то же время, как если бы счет был единственным ключом вместокортеж?

K2 = {?NORMAL_TYPE1,Invoice,'_'},
Rec = mnesia:read(#idx{key=K2}).

Ответы [ 2 ]

1 голос
/ 17 декабря 2010

Краткий ответ: Нет.

Более длинный ответ: у вас может быть шанс, если таблица представляет собой orderet_set или что-то в этом роде, но я бы на это не рассчитывал.

Побочные эффекты: мнезия, как правило, не слишком эффективна. нормализованные данные. Для этого обычно лучше использовать стандартные системы СУБД.

0 голосов
/ 18 декабря 2010

Вы можете использовать mnesia:match_object/1/3 и mnesia:select/2/3/4/1, где вы предоставляете шаблон, который может содержать '_' в качестве переменной не волнует . Я полагаю, это то, что вы имели в виду.

...