Should I use an ISRC as the primary key for my database?
While ISRCs are the preferred identifier for identifying sound recording when communicating about releases and contained resources, they are not able to be used as primary keys in anyone's database.There are at least three reasons for this:
When receiving a DDEX message describing a sound recording the recipient cannot rely on this information to be 100% correct 100% of the time. The ISRC in such a message may, not be an ISRC after all (even if claimed to be one) or a duplicate code.
There are legitimate reasons why a message sender may send different resource files with the same ISRC: For instance there a sound recording may have different encodings or dynamic ranges when used the context of different releases.
There are legitimate reasons why a message sender may send different sound recording descriptions. For instance the duration may differ (for up to 10 seconds. according to the ISRC handbook) while the ISRC remains the same.
Because of these reasons it is essential that companies use an internally generated code as the primary key for each of the objects they handle. And may be necessary to keep a copy of a
SoundRecodring descriptor for each
The principle same applies for ISWCs for musical works, GRIDs for releases and all other creations.