У меня есть приложение Django, которое собирает информацию о композиторах (в музыкальном смысле) из различных источников - API, HTTP POSTs, соскребов и т. Д.
Как только эта информация агрегируется, она не очень высокаякачественный.Таким образом, у вас может быть «JS Bach» в одном месте, «JS Bach» в другом и другие ошибки.Это приводит к тому, что в моей таблице несколько строк, представляющих одного и того же человека.
Я хочу устранить эти дубликаты, сделав «JS Bach» канонической версией, и сделать так, чтобы, если мы когда-нибудь увидим «JS Bach»Мы знаем, чтобы исправить это.На самом деле вариаций достаточно много, но я рад, что процесс исправления является ручным с учетом человеческого фактора.
Поэтому мой вопрос в том, как лучше всего представить это в коде.?На данный момент моя модель:
class Composer(models.Model):
name = models.CharField(max_length=100)
Должен ли я:
- иметь новую модель
ComposerCorrection
, которая отображает composer_id
на canonical_id
? - Добавить опциональный
canonical_id
к модели Composer
? - Что-то еще, что я не учел?
Стоит также упомянуть, что существуют другие отношения, которыезадействовать композитора, например Work
, принадлежащего Composer
.Когда произойдет исправление, эти идентификаторы также необходимо будет как-то перенаправить, но я думаю, что это не является основной проблемой.
Дайте мне знать, если вам нужна дополнительная информация!