>>Are you sure it is a "normalisation"? Or you're talking with British accent today?
>
>As I understand it, yes - normalisation, removing redundancy. Here we have 4 fields where only one may be used. Also, in the future, if more acc types are created, then it's a simple job to just add them to the acc type look-up table.
Exactly my thoughts. I've seen this scenario too often. When there's two of something, there's a chance there'll soon be four, and eventually a whole lookup table. So instead of adding fields, just have an EntityRoleLink table and there you are. You can even have candidate entities, which are just there without any role assigned yet.
The simplest example is other companies. Accountants would love to classify them as either customers or suppliers, but what if one of them is both, or neither - just a contact? That's why I had a table of "partners" (for lack of better expression) who could have various kinds of interaction with the app user. In the end, the accountants loved it when they saw all transactions with a partner in one place - their bills, our payments, our bills, their payments, interest charged etc etc.