我正在尝试在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
如果其他人有更好的设计建议,感兴趣:)
谢谢!
答案 0 :(得分:1)
如果要更改步骤顺序,使用单向关系会导致难以维护。
我建议使用embeds_many +步骤顺序字段+自定义验证程序。