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