选择没有自然键的唯一记录

时间:2012-03-29 13:25:36

标签: ruby datamapper sqlite3-ruby ruby-datamapper

例如,我有names的表id integer primary key, name text uniquenames(name)的唯一索引。

我想按索引式语法选择记录:(n12, nBill) = (Name[12], Name['Bill'])Name.get['Smitt']

作为文档says,可以使用“自然键”完成,但是如何在SQLite中创建它们?

更新:
 @Frost:正如Spotlight on... Composite Keys所说,必须使用两个键调用具有复合键的记录: Name.get(1, 'Smitt'),这对我来说是不对的。我需要通过任何键选择记录:

Name[1] == Name['Smitt']

1 个答案:

答案 0 :(得分:0)

正如property docs所说,您可以通过将:key => true传递到:name属性来创建自然键,如下所示:

class Name
  property :name, :unique => true, :key => true
end

这应该可以让您Name["Bill"]Name.get("Bill")

如果将:key添加到多个属性,则也可以使用复合键。