MySQL database with foreign key support
I'd use longer attribute names (firstName instead of fName, middleName, lastName). 
It's easier to read and maintain.
Are you sure that latin1 is enough for every data? Consider using UTF-8.