Прочитав этот вопрос, я узнал, что денормализация не является решением проблемы простоты. А что насчет этого дела?
У меня есть новостные статьи со списком сайтов, на которых будут опубликованы статьи. Последнее может быть выражено нормализованным образом либо таблицей, либо отношением «многие ко многим» (я думаю, через кросс-таблицу). Но простое решение - просто добавить кучу логических значений для сайтов-статей-будут-опубликованы-на (publish_to_site_1, publish_to_site_2 и т. Д.). Предполагая, что это сайты:
- небольшое количество
- не изменится со временем
- не имеют самих полей, кроме имени
Это все еще ужасная идея? Отношение «многие ко многим» кажется несколько громоздким, но я делал это раньше в подобных случаях (и это казалось громоздким).
Примечание. Я делаю это в Rails, где это не так уж больно. С другой стороны, метапрограммирование делает такие вещи тривиальными.
(1..5).each { |site| do_something(article["publish_to_site_#{site}".to_symbol]) }