Hallo Andreas,
Ursprünglich wollte ich mySQL zum Einsatz bringen, aber meine Recherchen ergaben, daß diese DB noch auf längere Zeit wohl keine Fremdschlüssel unterstützen wird (erst ab v4.1 oder so). Gerade aber für ein solides konzeptuelles DB-Schema meine ich, sind Fremdschlüssel unverzichtbar.
Jein - für eine vernünftige Datenbankapplikation ist unverzichtbar, daß man die referentielle Integrität sicherstellt. Fremdschlüssel sind da sehr praktisch, aber insofern nicht unverzichtbar, als man das ganze auch in php (oder einer sonstigen Sprache) emulieren kann. Das heißt nicht, daß man bei z.B. bei jedem delete auch die entsprechenden Detaildatensätze von verknüpften Tabellen löscht, das geht zwar theoretisch auch, aber praktisch funktioniert das eher weniger, weil man immer alle queries im code überprüfen muß, wenn man das Datenbankschema ein bißchen ändert.
Sinnvollerweise sollte man besser eine "Zwischenlayer" als Funktionsbibliotek oder Klasse einziehen, den man für Datenbankzugriffe statt der normalen Funktionen benützt, und der eine "Triggerfunktion" emuliert, indem man das Datenbankschema inklusive Triggern in php definiert, und der Funktion dann eben das Verhalten bei Fremdschlüsseln beibringt. Das macht beim ersten Mal etwas Mühe, aber wenn Du die Funktionen geschrieben hast, mußt Du Dir dafür über die ref. Integrität keine Gedanken mehr machen.
Ansonsten kannst Du ja auch PostgreSQL(http://www.postgresql.org) verwenden, das beherrscht z.B. Fremdschlüssel, Views und Subselects.
Trotzdem würde ich nicht sagen, daß MySQL "ungeeignet" ist, so ein bißchen Mitarbeiterverwaltung usw. ist nun wirklich nicht so kompliziert, daß man das mit MySQL nicht sauber hinbekommen könnte.
Viele Grüße
Stephan