Ilja
und je nach art der beziehungen (1:n oder n:m) der entitäten ... welche tabellen du brauchst, bzw. wieviele.
Dabei handelt es sich um l:n-Beziehungen. Und die Tabellen werden alle benötigt. Es gibt dann auch noch weitere.
Die Frage ist ja nur, ob es besser ist (ohne Fremdschlüssel) die gesamte Baumhirarchie hinunter zu klettern (in dem Fall mit JOINs) oder ob man von vornherein eine Verknüpfung mit der Wurzel herstellt.
ProXy
Beim Setzen von sog. Fremdschlüsseln können in die Spalten einer "Kind"-Tabelle nur Werte eingegeben können, die auch der Vater besitzt. Während dies bei nahezu allen DBMS der Fall ist, hinkt mySQL da wieder hinterher. mySQL bietet mehrere Storage Engines, die sich in Geschwindigkeit und Umfang unterscheiden. Die Engine innoDB - welche leider nicht Standard ist - bietet dir die Möglichkeit mit Fremdschlüsseln zu arbeiten.
Ach ja, jetzt kann ich mich wieder daran erinnern. Habe auch nochmals im Handbuch nachgesehen. Ich habe das schon einmal mit einer innoDB versucht. Bin dann aber wieder zu MyISAM gewechselt. Das mit den Fremdschlüsseln möchte ich vorerst einmal bleiben lassen.