1

我有一个元素,它可以有一个或一些标题、一个或一些描述以及一个或一些关键字列表。从 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

你觉得什么更有意义?那里有更好的解决方案吗?

4

2 回答 2

3

个人最喜欢2。这些只是字符串,因此拥有多个模型没有意义。

于 2013-03-25T07:39:02.387 回答
0

出于与杰夫相同的原因,我也会选择 2 号。如果我必须验证输入,我会进行自定义验证。

于 2013-03-28T03:16:55.257 回答