Общий вопрос о дублировании / нормализации данных (моделирование) - PullRequest
0 голосов
/ 17 августа 2011

У меня есть следующие отношения:

  • Foo has_one Бар
  • Бар has_many Баз
  • Foo has_many Баз через бар

Теперь моя проблема: мне нужно работать с Foo.Baz, но информация должна быть заморожена / статична.

Под этим я подразумеваю, что всякий раз, когда меняется Bar.Baz, я не хочу, чтобы Foo.Baz менялся.

По сути, Foo.Baz - это некая запись журнала, которая описывает Baz в момент создания Foo.

Как мне лучше всего справиться с этой ситуацией?

Мое первое желание - просто создать еще одно отношение между Foo и Baz, но это добавит много избыточных данных, потому что Bar.Baz будет меняться очень редко.

Есть ли лучший способ?

1 Ответ

0 голосов
/ 17 августа 2011

Не могли бы вы оставить все как есть, а затем создать несколько областей для получения Foo.Baz на основе временных меток и не допускать обновления Bar.Baz, просто создает.Таким образом, чтобы получить Foo.Baz, вы получите последнюю версию

Bar.Baz when Bar.Foo == foo and Bar.baz.created_at < Foo.created_at.

Я понимаю, что это не очень хорошее решение, но это может быть отправной точкой ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...