I'm currently tasked with implementing a method of mapping certain attributes (e.g. tax codes, nominal codes, country codes etc...) between 2 systems.
These mappings will tell the system that when specific properties of data pushed by one system have a certain value, the value will be changed to the value of the attribute mapped on the other side.
For example: Say 2 systems don't agree on the statuses for customers (one system has 'Okay', the other, 'Good'). If the 'Okay' attribute is mapped to 'Good' then whenever the value 'Okay' is pushed by the first system and then pulled down by the second, the value will be changed to 'Good'.
This mapping will happen both ways, so I need to ensure that an attribute can only be mapped to a single attribute (e.g. if 'Okay' is mapped to 'Good', neither of these can be mapped to or from any other attributes).
My problem is that I'm having trouble visualising how to set up these mappings.
My only idea so far is to have a table with 2 columns. One prepopulated with the attributes from one system, the other with a drop down allowing the user to select an attribute to map to it.
My problem with this is that either I have to remove items from the drop downs whenever something is selected (otherwise they could set up multiple mappings) or I have to validate it and throw errors when the user selects an attribute that has already been used. Neither of these feel very clear and transparent.