Variants are minor but important differences between instances of a review subject: the editions of a book, the "Director's Cut" version of a movie, etc.
For now this would not be editable data but only available where external sources support it. But we should design it in such a way that it could be edited in future.
The way this could work, I think:
We'll have a separate "variants" table where we routinely generate variant data from external sources like Open Library, Wikidata, etc.
A review can link to a specific ID in that table.
A review subject page shows variant data, but may have to abridge it (OL has huge numbers of editions for some books).
The tricky bit is that the information for existing variants in the external source may change. In most cases we should be able to just check the external ID to determine whether we create a new record or update an existing one. In some cases we may end up with orphaned records -- because the source URL has been removed on our side; because the record has been deleted/merged on the remote side, etc.
We should aggressively prune these orphan copies except where they're linked to a review. Orphans linked to a review are harmless, but will not be offered for selection on new reviews, or when editing the existing review.
Variants are minor but important differences between instances of a review subject: the editions of a book, the "Director's Cut" version of a movie, etc.
For now this would not be editable data but only available where external sources support it. But we should design it in such a way that it could be edited in future.
The way this could work, I think:
We'll have a separate "variants" table where we routinely generate variant data from external sources like Open Library, Wikidata, etc.
A review can link to a specific ID in that table.
A review subject page shows variant data, but may have to abridge it (OL has huge numbers of editions for some books).
The tricky bit is that the information for existing variants in the external source may change. In most cases we should be able to just check the external ID to determine whether we create a new record or update an existing one. In some cases we may end up with orphaned records -- because the source URL has been removed on our side; because the record has been deleted/merged on the remote side, etc.
We should aggressively prune these orphan copies except where they're linked to a review. Orphans linked to a review are harmless, but will not be offered for selection on new reviews, or when editing the existing review.