MySQL mapping fields
Yes, it's common to keep the username in one table, and then reference it by the id associated with that username. Then the idnum stays the same in all your tables, and you can change the username in one place.

You need to add idnum to each table where you store username.

ALTER TABLE favoritecolors ADD COLUMN idnum INT;


The idnum will be NULL by default after you create this new column.

Then update it to the idnum value matching the corresponding username:

UPDATE TABLE favoritecolors AS f
JOIN usernames AS u ON f.username = u.username
SET f.idnum = u.idnum;


If any of your tables contained a username that is not found in the usernames table, it won't update the idnum. So the idnum will still be NULL. Search to make sure this didn't happen:

SELECT username FROM favoritecolors WHERE idnum IS NULL;


This should return no rows.

After you map all your rows with a valid idnum, you can choose to drop the superfluous username from the dependent table, so the username is maintained in just one table (usernames).

ALTER TABLE favoritecolors DROP COLUMN username;


Make sure you first update all application code that queries username from any of your tables, so that it queries the idnum instead!