Какой из них является наилучшей практикой и Почему ?
Внешний ключ получен от пользователя .
.
Внешний ключ от user.type до type.typeName :
user.type
type.typeName