オンラインオファーのデータベースを構築しています。各オファーは 1 つ以上の国で表示できます。たとえば、広告主は米国とカナダでオファーに到達することに関心がある場合があります。
私たちがカバーしている国のリストは約 50 の長さで、各国は US、CA、GB、FR、DE などの ISO 標準の 2 文字の頭字語で識別されます。
これは HABTM テーブルで処理できますが、MySQL と Postgres で「SET」列タイプを単純に使用できる場合、国とオファーを結合する長いテーブルを持つのは効率が悪いようです (ここで「SET TYPE」に関する MySQL のドキュメントを参照してください)。
次のように「セット」タイプの列を追加してみました:
t.set :regions, :limit => ["GB","FR","DE"]
これはエラーをスローしませんが、フィールド 'regions' がオブジェクトから欠落しています。「set」という単語は英語で最もよく再利用される単語であるため、Google ではあまり見つけることができません (140 以上の異なる用途と辞書の 6 ページ)。唯一の関連記事は、現在 404-ing である 2006 年の Rails Wiki に関するものでした。
ポインタをいただければ幸いです。その間に habtm を実装します。