A few months ago, our client had a ‘Compliance’ team visit. It was a nightmare. Worse than the general guff Marketing / Sales Departments come up with… or those nasty little changes that are all designed to improve the user experience (you know the ones; where you have to turn some design or code on its head, just because the users are apparently totally unable to understand ‘X’ or ‘Y’*). Anyway, I’m not exactly sure what we were meant to be complying to, but some of the changes were so arbitrary that we could not think of a single justification for them.
A very personal note this time. Last week I released a project that was pretty-much the largest single release that I’ve worked on for my current employer.
Like many systems, the history of this one is that as customer applications made their way through the relevant processes, the system recorded various information about the processes that happened and how they worked out. The system then used the presence or absence of those success / fail records to decide what needed to be done next.
Recently, I’ve noticed that some developers, while fully understanding what a lookup table is for in terms of normalising data, miss opportunities to use them in additional ways. This post is therefore about those further uses for lookup tables that will really give you an opportunity to streamline your code.
‘Lookup Tables’ are commonly created in relational data models and databases as part of the normalisation process. For example, instead of having address rows in an address table that continually repeat the words ‘HOME’ or ‘WORK’ to indicate if this is a customer’s home or work address, we might introduce an ‘AddressType’ table, with a primary key of ‘AddressTypeId’. Our AddressType table may look like this:
AddressTypeId Name 1 Home 2 Work
I recently got around to researching a topic on the internet that had intrigued me, that being the question: “Should Table Names be in the singular, or plural?” For example, should you call a table Employee… or Employees? For as long as I can remember, my impression has always veered towards the singular. I don’t believe this is because I am a programmer, concentrating on row-based operations rather than set-based (because, as much as anything else, I actually started learning SQL with Oracle as pure SQL… not in the context of learning it with a third-generation programming language).
A colleague recently mentioned to me that he thought that re-throwing an exception with ‘throw ex’ was a Bad Thing… and as I was not aware of this I did some comparisons of different options to at least try to understand what I was losing out on by using ‘throw ex’.