hel*_*llo 3 ruby database database-design ruby-on-rails relational-database
如何在Ruby on Rails应用程序中的单个单元格记录中保存多个值?
如果我有一个Exp名为:Education,Experience和的列的表,Skill如果我希望用户在一行中存储多个值,例如:教育机构或技能,那么最佳做法是什么?
我想让用户使用多个文本字段,但应该进入相同的单元格记录.
例如,如果用户具有多种技能,那么这些技能应该在一个单元格中?这会是最好的还是会更好,如果我创建一个新技能表?
请指教,
谢谢
我不建议在同一个数据库列中存储多个值.它会使查询变得非常困难.例如,如果您想查找具有特定技能集的所有用户,则查询在可读性和性能方面都会笨拙.
但是,仍然存在某些有意义的情况.
ActiveRecord内置了对此的支持.您可以存储Hash或存储Array在数据库列中.
只需将列标记为 Text
rails g model Exp experience:text education:text skill:text
Run Code Online (Sandbox Code Playgroud)接下来,序列化Model代码中的列
class Exp < ActiveRecord::Base
serialize :experience, :education, :skill
# other model code
end
Run Code Online (Sandbox Code Playgroud)现在,您只需保存Hash或Array在数据库字段中!
Exp.new(:skill => ['Cooking', 'Singing', 'Dancing'])
Run Code Online (Sandbox Code Playgroud)| 归档时间: |
|
| 查看次数: |
6273 次 |
| 最近记录: |