2009-11-16 18 views
0

我想有一个父子层次结构,我想在父级上有一个“系列id”的概念。ActiveRecord HasMany/Belongs是否可以为关系使用非PrimaryKey列?

所以父母(如果你更新它)会过期旧的唯一键..保持系列ID并插入第二行。

我希望孩子们“挂断”该系列ID而不是唯一的ID。

是否知道BelongsTo是否可以链接到非主键(但通过GUID唯一)列?

家长: 唯一ID(GUID),SeriesId(GUID),名称,描述 儿童: 唯一ID(GUID)的ParentId(始终连接OT唯一ID-以上),名称,描述。

我知道外键关系真的应该在关系的一边有一个“键”,但是,通过我的GUID他们是键式的......但不是真正的键。

它没有什么大不了,但如果我通过更新它的元数据“过期”父母,我想避免必须将所有孩子“复制”到父母的新副本中。

我想做一些不可能发生的事情吗?

+0

而不是试图做到这一点,我会的系列项目关系模型的许多一对多。 – 2009-11-17 03:36:58

回答

-1

有用于belongs_to的一个选项,让您指定的关系:

:foreign_key 
    Specify the foreign key used for the association. By default this is guessed to be the name of the association with an "_id" suffix. So a class that defines a belongs_to :person association will use "person_id" as the default :foreign_key. Similarly, belongs_to :favorite_person, :class_name => "Person" will use a foreign key of "favorite_person_id". 
+0

我使用Castle的.NET版本,所以语法有点不同,但我会尝试。我认为我在作弊,因为它实际上并不是一个更像是ForeignKey-LikeColumn的ForeignKey:P – 2009-11-16 21:52:38

+0

如果我的关系实际上是一个外键,我认为这是正确的建议,但我已经通过做一些重新关联子对象。 我不认为我所问的是可能的。 – 2009-11-16 22:04:23

相关问题