With the final merge, that created Erinn, we had another round of name collisions, with some relieved faces and some ... not. Rather than a nebulous "fix this" post in "Feedback and Suggestions", I thought creating a thread, in "General Chat" first, to gauge and discuss the problem and hopefully make a set of more specific ideas about this might be of use. So, I'll get the ball rolling.
1. Why is it happening?
In databases you have types of objects called records
. The individual pieces of information in them are called fields
. A, real world, example of a record is a driver's licence. An individual instance of such a record is YOUR drivers licence. A field is, say, your first name. What do you do if you have two records that are identical but, nonetheless, are two separate instances of the record object; how do you tell them apart? They have to have a field or set of fields whose values are unique in the database. These are called Primary Keys
. Your drivers licence I.D. number is it's primary key. In Mabinogi, the Primary Key was the name, of your character, pet, partner, fynni pet, and homestead, along with your server of residence: Mari, Ruairi, Tarlach, Alexina, Nao, and Erinn. So when the merges happened, Goku of Ruairi, and Goku of Tarlach, would both become Goku of Nao. To make the record unique, Nexon used the following kludge
: they became Goku+Ruairi of Nao and Goku+Tarlach of Nao. They didn't include Alexina in that merge so when it was merged in, a couple three years later, after having not used the time to create a better solution, that business happened all over again. Some people didn't really care, most did.
2. What can be done to fix it?
There have been several suggestions:
a. Create a Last Name field, so that first and last name must be unique. This would solve the problem but in terms of folks complaining would also just be kicking the can down the road. There can only be one Son/Goku. There's more leeway but eventually you have Sun1248/Goku. Essentially this is what we had before any merge but if we're visiting the Primary Key problem, we can do better.
b. since there's only one server then the server field is redundant. Why not hard code
"Erinn" into the log-in server thus freeing up an already existing field for other use? There are two problems with this: the lesser one is that it would be a mess changing things around to turn an existing field into something else but the main problem is that there is NOT just one server left; there are two. The other is the testing server. So, the server field is not to be tampered with.
c. if a drivers licence has a unique ID number then why not make a field called, oh I don't know say, "I.D. Number" and write code to keep it unique. Why? Because they don't need to; there is already a field called record number. It starts at 1 and increments by 1 every time a new character is created and so is automatically unique. With the merge that created Nao, Nexon started with Mari, so they all kept their original record numbers. Next merged in was Ruairi, so their record numbers begin at the highest Mari record number +1, finally, Tarlach was put in at Mari+Ruairi+1. in the couple three years that Nao existed, natural-born Naowegians started incrementing at Mari+Ruairi+Tarlach+1. When the second merge happened, Alexina was merged into Nao, So all Naowegians kept their record numbers and Alexina started at Nao+1. Natural-born Erinnites began at Nao+Alexina+1. So these are already unique and will remain so until the field rolls over
3. How is using record number "doing better"?
It allows for unlimited reuse of any name; we could all be Goku or Son Goku, if we wanted.
4. Okay, so the computer can tell different Goku's apart, how do I?
By using record number. In game they could call it I.D. Number or maybe be cute and call it "Fone Number" or just use a single-character icon that looks like an old rotary telephone. Press-alt and it shows a character's Fone Number. In the chat log it gives the character's name and Fone Number. Notes sent have the character name and Fone Number. When trying to note or mail characters you just enter their Fone Number. this is just like the real world in the pre-speed-dial era. Unless, of course, they create a speed-dial feature.