我正在编辑设备生成的用户模型,为用户添加一个语言字段,在那里他可以添加一个或多个他从ComboBox说的语言。
我的问题是在mysql中表示它的最佳方式是什么。 我不知道他说的语言数量,所以最多可能达到20种语言。
我想到了创建一个包含LanguageId,LanguageName和LanguageCode的语言模型 然后将has_and_belongs_to_many与用户模型一起使用,并拥有两个模型的连接表。
我不确定这是否是解决此问题的正确方法。
有什么建议吗?
答案 0 :(得分:0)
您也可以拥有一个序列化数组,并将所有选定的语言存储在用户模型的字符串中。
这取决于您计划如何使用存储的语言 - 用户数据,如果您需要将它们用作搜索参数,那么所有这些都意味着您应该使用HABTM来表示它。
如果您只需要在用户显示页面上显示数据,则不需要将其存储在字符串或文本属性上,并序列化< - >在必要时进行反序列化可以起作用,尽管它可能会感到奇怪。