【发布时间】:2012-09-01 06:02:46
【问题描述】:
我正在尝试在 Ruby 和 Mongoid 中创建一个带有 Steps 序列的 Tour:
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
如果其他人有更好的设计建议有兴趣:)
谢谢!
【问题讨论】:
-
如果您想更改步骤顺序,使用单向关系将导致难以维护。为什么不保留 embeds_many + 一个 step order 字段?
-
感谢您的及时回复@apneadiving :)
-
它回答了你的问题吗?
-
它有帮助 :) 我通常会再等几天,然后再将其标记为答案
-
@apneadiving 很高兴将此作为答案投票,只需在下方添加即可
标签: ruby database-design nosql mongoid