读取mnesia表,其中key是一个元组,搜索条件包含'_'下划线

时间:2010-12-16 21:03:10

标签: erlang mnesia

我有第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}).

2 个答案:

答案 0 :(得分:1)

答案简短:不。

答案越长:如果表格是orderet_set或者其他类似的话,你可能有机会,但我不会指望它。

旁白:mnesia通常不太有效w.r.t.标准化数据。通常最好使用标准的RDBMS系统。

答案 1 :(得分:0)

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