4 ms·
And a product might get multiple barcodes. I was a fan of natural keys but it is just too much trouble. For example you have to url encode everything when a ke
by pasta 9y ago
And a product might get multiple barcodes.
I was a fan of natural keys but it is just too much trouble. For example you have to url encode everything when a key is used in the url.
But sometimes I still use natural keys for tables with for example ISO standards like country codes.
- sparkie 9y agoISO Country codes, language codes and currency codes are so common (and don't change very often) that they should really be part of the databases's standard distribution as types (eg, enums), so that everyone is singing from the same hymn book and that not every developer needs to implement the same tables in their DB.
- 9034725985 9y agoAre you thinking something like pg_timezone_name? https://www.postgresql.org/docs/current/static/view-pg-timezone-names.html https://www.postgresql.org/docs/current/static/view-pg-timez... https://gist.github.com/justqyx/11245900 https://gist.github.com/justqyx/11245900
- wvenable 9y agoI feel like an ISO country code is more of a surrogate key anyway; it's a mnemonic made-up value specifically designed to be used as key.
- dragonwriter 9y agoAn ISO country code isn't a surrogate key; it's not db-specific, and it has domain meaning (assuming you are using it for it's intended purpose). It's ususlly, when used, a representation chosen for natural domain information, so if it's a key, it's a natural key.
- brlewis 9y agoFrom the article: The naturalness or artificiality of unique properties in a database is relative to the outside world. A key which was artificial at birth in some standards body or government agency becomes natural to us because it’s generally agreed upon in the world at large, and/or imprinted on objects.