1

1つまたはいくつかのタイトル、1つまたはいくつかの説明、および1つまたはいくつかのキーワードリストを持つことができる要素があります。Webビューからは、ある種の「代替タイトルの追加」ボタンがあります。Mongoidでこの種のスキーマを設計する正しい方法は何だろうと思っていました。

私はこの3つのソリューションの1つを実装することを考えていました(多分最悪から最高にソートされています):

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 に答える