我正在建立一个在线报价数据库。每个报价都可以在一个或多个国家/地区查看,例如,广告商可能有兴趣在美国和加拿大获得报价。
我们涵盖的国家/地区列表大约有 50 个,每个国家/地区都使用 ISO 标准的两个字母首字母缩写词来标识,例如 US、CA、GB、FR、DE 等。
我可以使用 HABTM 表来处理这个问题,但是当我可以简单地在 MySQL 和 Postgres 中使用“SET”列类型时,将长表加入国家/地区似乎效率低下(请参阅此处的“SET TYPE”MySQL 文档)。
我确实尝试添加一个“set”类型的列,如下所示:
t.set :regions, :limit => ["GB","FR","DE"]
这不会引发错误,但我的对象中现在缺少“区域”字段。我在谷歌上找不到太多,因为“set”这个词是英语中最常用的词(140 多种不同的用途,字典中有 6 页)。唯一相关的文章是 2006 年的 Rails Wiki,现在是 404-ing。
将不胜感激任何指针,并在此期间实施一个 habtm。