我有一个包含大约10-15个不相关的复选框组的表单,每个复选框都需要能够选择多个值。为每个组创建一个新表和HABTM关联似乎有点矫枉过正。
例如,给定一个视频表的表单,该表应捕获以下组的选项。用户应该能够为每个复选框选择多个复选框。
Emotions
[x]Sad
[x]Angry
[ ]Happy
[ ]Hopeful
Landscape
[x]Mountains
[ ]City
[ ]Indoors
[x]Water
Industry
[ ]Arts
[x]Design
[x]Technology
[ ]Education
我一直在考虑使用以下选项来解决这个问题,但没有一个感觉正确。
选项1
创建Categories表,并将每个表关联到CategoryGroups表。然后将已检查的category_ids数组存储到video.emotions video.landscape和video.industry列中。
选项2
将哈希值/ hstore值直接存储到列中。
选项3
为每组复选框创建表。然后是剪辑和选项的HABTM关联或连接表。好像数据库可能会变得混乱。
选项4
为每个选项创建新列。好像桌子结构可能变得笨拙。
搜索(可能使用solr)将成为应用程序的重要组成部分,因此字段需要易于查询和搜索。有没有办法处理这样的事情?
答案 0 :(得分:0)
一个想法是将情绪,风景和行业存储为acts-as-taggable-on的标签。这样,您可以保持模型清洁,同时还可以轻松搜索这些字段。
它似乎也有意义,因为它们看起来像您要添加到此模型的预定义标记。