rose_auto_create_model.pl: Relationship-Namen anhand der Spaltennamen mappen
Bisher wurde das Umbenennen der generierten Relationships anhand des von Rose vergebenen Namens der Relationship vorgenommen. Das ist problematisch, weil diese wiederum von der Reihenfolge abhängen, in der die Fremdschlüsseldefinitionen von der Datenbank zurückgeliefert werden.
Konkretes Beispiel: Tabelle »follow_up_access« mit den Spalten »who« und »what«, die beide Fremdschlüssel auf employee sind.
Rose benennt die erzeugten Relationships nach dem Klassennamen derjenigen Tabelle, auf die die Schlüssel verweisen. Tabelle »employee« → Klasse »SL::DB::Employee« → Default-Relationshipname »employee«.
Die erste von der Datenbank gemeldete Fremdschlüsseldefinition bekommt nun den Namen »employee«. Die zweite sollte diesen ebenfalls bekommen, aber da der schon vergeben ist, bekommt sie das Suffix »_obj«, ergo »employee_obj«. Soweit, so gut. Ändert sich nun aber die Reihenfolge, so werden die Namen genau umgekehrt herum vergeben.
Die Umbenennung anhand des Tripels <Domäne, Tabelle, Spaltennamen> hingegen ist immer eindeutig.
rose_auto_create_model.pl: Relationship-Namen anhand der Spaltennamen mappen
Bisher wurde das Umbenennen der generierten Relationships anhand des von
Rose vergebenen Namens der Relationship vorgenommen. Das ist
problematisch, weil diese wiederum von der Reihenfolge abhängen, in der
die Fremdschlüsseldefinitionen von der Datenbank zurückgeliefert werden.
Konkretes Beispiel: Tabelle »follow_up_access« mit den Spalten »who« und
»what«, die beide Fremdschlüssel auf employee sind.
Rose benennt die erzeugten Relationships nach dem Klassennamen
derjenigen Tabelle, auf die die Schlüssel verweisen. Tabelle »employee«
→ Klasse »SL::DB::Employee« → Default-Relationshipname »employee«.
Die erste von der Datenbank gemeldete Fremdschlüsseldefinition bekommt
nun den Namen »employee«. Die zweite sollte diesen ebenfalls bekommen,
aber da der schon vergeben ist, bekommt sie das Suffix »_obj«, ergo
»employee_obj«. Soweit, so gut. Ändert sich nun aber die Reihenfolge, so
werden die Namen genau umgekehrt herum vergeben.
Die Umbenennung anhand des Tripels <Domäne, Tabelle, Spaltennamen>
hingegen ist immer eindeutig.