我有一个元素,它可以有一个或一些标题、一个或一些描述以及一个或一些关键字列表。从 web 视图来看,我们有某种“添加替代标题”按钮。我想知道在 Mongoid 中设计这种模式的正确方法是什么。
我正在考虑实施这 3 个解决方案之一(可能从最坏到最好排序):
1)添加字段到合理的数量
class Video
include Mongoid::Document
field :alt_title_1
field :alt_title_2
field :alt_title_3
field :alt_description_1
field :alt_description_2
field :alt_description_3
field :alt_keywords_1
field :alt_keywords_2
field :alt_keywords_3
end
2) 或者,将此字段定义为类型:数组
class Video
include Mongoid::Document
field :titles, type: Array
field :descriptions, type: Array
field :keywords, type: Array
end
3)或者,有复杂的关系
class Video
include Mongoid::Document
embeds_many :titles, :descriptions, :keywords
end
class Title
include Mongoid::Document
embedded_in :video
field :value
end
class Description
include Mongoid::Document
embedded_in :video
field :value
end
class Keyword
include Mongoid::Document
embedded_in :video
field :value, type: Array
end
你觉得什么更有意义?那里有更好的解决方案吗?