语言陷阱:mnesia数据库中的record的顺序

昨天在erlang下弄了个数据库,当更新数据的时候,发现了一些些问题。数据类似下面的记录:

       -record(counter, {
	   type,
	   value
	   } ) .
       -record(class, {
                      name,
                      id}).
       

抱歉使用C++的高亮方式,没有erlang的高亮方式【换了个插件,支持了。】。
counter用来记录class中的数量,class中有两个数据段,名字和id。因为考虑一个名字和一个id对应,所以创建表的时候使用{type,set},{index, [id]}来设置。当我更新数据的时候,如果名字相同的话,后面更新的id会将前一个覆盖掉。比如{“张三”,02},{“张三”,04},记录完之后会只有一个{“张三”,04},很显然,后来的覆盖了之前存在的。但如果将class的结构编程这样:
继续阅读语言陷阱:mnesia数据库中的record的顺序