如何管理Mongoid和Ruby中的步骤序列

时间:2012-09-01 06:02:46

标签: ruby database-design nosql mongoid

我正在尝试在Ruby和Mongoid中创建一个Tour序列Steps

class Tour
  include Mongoid::Document
  field :name,    type: String
  embeds_many :steps
end

class Step
  include Mongoid::Document
  field :name,    type: String
  embedded_in :tour
end

管理有序步骤序列的最佳方法是什么?(考虑到:插入,删除,移动步骤)

我的第一反应是单向链表样式,存储下一步:

class Step
  include Mongoid::Document
  field :name,    type: String

  embeds_one  :step, store_as: "next_step"
  embedded_in :tour
end

如果其他人有更好的设计建议,感兴趣:)

谢谢!

1 个答案:

答案 0 :(得分:1)

如果要更改步骤顺序,使用单向关系会导致难以维护。

我建议使用embeds_many +步骤顺序字段+自定义验证程序。