この質問を読んだ後、非正規化は単純化のための解決策ではないことがわかりました。この場合はどうですか?
サイト記事が公開される予定のリストを含むニュース記事があります。後者は、テーブルまたは多対多の関係 (クロステーブルを介して) のいずれかによって正規化された方法で表現できます。しかし、単純な解決策は、sites-article-will-be-published-to (publish_to_site_1、publish_to_site_2 など) に対して多数のブール値を投入することです。サイトが次のとおりであると仮定します。
- 数が少ない
- 時間が経っても変わらない
- 名前を除いて、フィールド自体はありません
これはまだひどい考えですか?多対多の関係はやや面倒に思えますが、私は以前にこのような場合にそれを行ったことがあります (そして面倒に思えました)。
注:私はこれを Rails で行っていますが、それほど面倒ではありません。一方、メタプログラミングは、このようなことを些細なことにします。
(1..5).each { |site| do_something(article["publish_to_site_#{site}".to_symbol]) }