varchar is ne ganz schlechte Idee. Wenn jetzt jemand statt "gewalzt" "gewalzt (warm u. kalt)" in der Ausgabe haben will, musst du alle deine Datensätze ändern.
Fremdschlüsselverknüpfung ist da schon das Richtige. Sollte mit passenden Indizes auch recht flott gehen. Probleme könnte es allerdings geben, wenn du noch mehr Zusatztabellen bekommst.
IMHO haben einige Datenbanken ein Limit, wieviele Tabellen man in eine
Query packen kann.