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
何がより理にかなっていると思いますか?そこにもっと良い解決策はありますか?