0

我有一个第 3 或第 4 范式 mnesia 数据库,有问题的表应该是键/值哈希,但是,架构师将键和值放在记录的键部分。

它看起来像:

-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}).
4

2 回答 2

1

简短的回答:不。

更长的答案:如果表是 orderet_set 或类似的东西,你可能会有机会,但我不会指望它。

旁白:mnesia 通常对标准化数据不太有效。为此,通常最好使用标准的 RDBMS 系统。

于 2010-12-16T22:19:56.770 回答
0

您可以使用mnesia:match_object/1/3mnesia:select/2/3/4/1在哪里提供可以包含'_'作为无关变量的模式。我想这就是你的意思。

于 2010-12-18T16:57:13.073 回答