OPUS4 / framework

OPUS 4 Database Implementation
Other
2 stars 7 forks source link

Thesis-Publisher/Grantor Felder von Document mit Doctrine #201

Open j3nsch opened 2 years ago

j3nsch commented 2 years ago

Die beiden Felder ThesisPublisher und ThesisGrantor werden beide auf die gleiche Link-Tabelle gemappt. Die Verknüpfung mit DnbInstitute hat das zusätzliche Property Role. Die Institute sind unabhängig von den Dokumenten und werden nicht gelöscht, wenn ein Dokument gelöscht wird. Die Verknüpfungen werden natürlich gelöscht. Die Umsetzung von DnbInsitute als Entität erfolgt in Issue #202.

Das Verhalten momentan ist so, das ein DnbInstitute-Objekt direkt über die set- oder add-Funktion zu einem Dokument hinzugefügt werden kann. Dabei wird automatisch das entsprechende Link-Objekt erzeugt und abhängig von dem verwendeten Property, ThesisGrantor oder ThesisPublisher, das Role Property der Verknüpfung gesetzt. Ein Dokument kann mehrere Grantor und Publisher Institute haben.

Ich denke, dass sollte sich auch mit Doctrine umsetzen lassen. In den Set- bzw. Add-Funktionen sollten wir die notwendigen Schritte ausführen können. Gibt es einen besseren Weg?

Hier spielt auch Validierung eine Rolle. Die DnbInstitute haben die Properties isGrantor und isPublisher. Ein Institut, dass nur als Publisher markiert ist, kann nicht als Grantor verwendet werden. Ob das inhaltlich Sinn macht, kann ich nicht beurteilen. Diese Funktionalität existiert so seit etwa 10 Jahren und wird genutzt. Die ursprünglichen Überlegungen wurden nicht dokumentiert.

j3nsch commented 2 years ago

Es gibt anscheinend keine Tests dafür, wenn versucht wird ein Grantor als Publisher zu einem Dokument hinzuzufügen. Die Tests sollten in DnbInstituteTest oder DocumentTest stecken.

TODO Bitte Tests vorab ergänzen und Verhalten dann bei der Umsetzung replizieren (oder bei Bedarf noch einmal absprechen).