This is an idea I've been kicking around a little. The more I think about it, the more appealing this sounds:
- A record is a game, engine, music pack, competition, program, etc, regardless of version of architecture. The main idea here is a title, a showcase page, a unique URL.
- Versions are a subset table of records with a version, a minimum MZX version if applicable, a released date, and an optional architecture secondary key that causes the architecture drop down to appear for any given version.
- Author(s) who created the game
- Resources
- Screenshots, which will have captions so old versions can be clarified but new versions don't need to have new screenshots uploaded if they're virtually the same
- Reviews, which record the version they were written for. The NOTE message will be automated and not written to the body of the review when a new version is uploaded
- Tags
- Pros:
- Superseding code can be deleted
- Reviews and tags don't have to be duplicated every time a new version comes out
- Showcase links never have to be updated
- Version dropdown doesn't have to rely on walking backwards through a table
- Cons:
- I have to move a lot of data around
- Then I have to reprogram large portions of the Vault