Actually, there is nothing in the database design preventing a double entry in the repository. Only the application is enforcing data integrity.

You notice that the script is deleting the current version of the application stored, in order to avoid such duplicate.

The real repository has a further control, a UNIQUE key on "name" + "vers" (which is defined NOT NULL) + the file CRC calculated before the update, so that duplicates are harder to pass. This rule relies on the assumption that all application versions are incremented automatically at each build.

Add to this that the ones allowed to update this table are all seasoned developers, who are using the same application to update. They are all disciplined and each one is in charge of a different application, so I didn't have a single case of double entries in this paradigm.