I'm calling this a fail...
-
Yeah, I know! I once had a discussion with a "database specialist" (a name that he got because he couldn't write code, but he could write SQL :confused:) and he really made it a point that we should make some functional field a PK, but only in that one table. He wasn't susceptible to any logic like "but we shouldn't use a functional key in case the functionality changes" (will never happen), "but it's inconsistent with the rest of the database" and "but using an arbitrary ID isn't more complicated for me, the developer, while it gives us all flexibility in the future" X| That whole project never finished and the client got all his money back. I quit the company before that time though :)
Best, Sander sanderrossel.com Continuous Integration, Delivery, and Deployment arrgh.js - Bringing LINQ to JavaScript Object-Oriented Programming in C# Succinctly
Ah one of the benefits of being old and respected is you can call out idiots like that and have someone listen (most of the time). Having the balls to walk away also helps.
Never underestimate the power of human stupidity - RAH I'm old. I know stuff - JSOP
-
So every company in the Netherlands has a VAT-number, which I also have and which identifies me at the tax authorities. The issue with these VAT-numbers is that it contains people's citizen service number, which is used by the government to uniquely identify a person. It's also used on passports and banks and doctors must use it too. Other companies may not ask for, or use, your citizen number (although it used to be on my salary specification, what's up with that?) Anyway, there's no need to give it to everyone you do business with, which is what you do with your VAT-number because it must be placed on invoices. So the Dutch tax authorities just send me a new VAT-number which does not include my personal ID. Which is great, except... I'm supposed to share this new number with my clients, starting next year. But I still have to use the old number for any correspondence with the tax authorities... So now I have TWO NUMBERS! X| My guess is that my old ID is a primary key in a SQL database, which they can't just change for so many users (and that's why you shouldn't use functional keys as primary keys). Because their internal software uses the old ID everywhere they can't just change it to look at the new ID (although how hard can it be?). The new ID is just a new field that's right next to the old ID. So now everyone just has two IDs because that's certainly more maintainable. The tax authorities had this slogan, freely translated, "we can't make it more fun, but we can make it easier." Apparently, they can't make it easier either X|
Best, Sander sanderrossel.com Continuous Integration, Delivery, and Deployment arrgh.js - Bringing LINQ to JavaScript Object-Oriented Programming in C# Succinctly