OPUS4 / framework

OPUS 4 Database Implementation
Other
2 stars 7 forks source link

Person* Felder in OPUS_Document zusammenfassen #286

Open j3nsch opened 2 years ago

j3nsch commented 2 years ago

Die Felder PersonAuthor, PersonAdvisor, PersonContributor, PersonSubmitter, PersonEditor, PersonTranslator, PersonReferee sollen in Person geändert werden. Person besteht eh aus mehreren Feldern (FirstName, LastName, ...) und erhält ein weiteres Feld role, dass die bisherige Information abdeckt. Die Document-Klasse bekommt eine Methode getPersonByRole(). Genauso wird bei den Feldern Identifier, References und Subject verfahren (statt role heißt das zusätzliche Feld hier type).

Intern: https://tickets.zib.de/jira/browse/OPUSVIER-1145

j3nsch commented 2 years ago

Im Prinzip werden diese neuen zusammengefassten Felder bereits verwendet, um die neuen Metadaten Formulare zu generieren. Die alten Felder wurden allerdings noch nicht entfernt, um nicht sofort anderen Code, der von diesen Feldern abhängt zu brechen (z.B. Publishing).

j3nsch commented 2 years ago

Alter Kommentar:

Ich habe nichts gegen dieses Änderung, aber warum wollen wir das eigentlich tun? Wie aufwendig ist das und was haben wir davon? Das Metadaten-Formular in der Administration arbeitet mit getPerson und setPerson. Die Rollen-spezifischen Funktionen werden nicht verwendet. Die Funktion getPersonByRole würde etwas Code in der Administration reduzieren, aber das ist nicht wirklich notwendig.

Die Funktionen können im Prinzip erhalten bleiben, um den Zugriff auf Personen mit einer bestimmten Rolle zu vereinfachen. Es kann allerdings nicht wie bisher separate Felder im Datenmodell für die Personen in den unterschiedlichen Rollen geben. Diese Felder werden momentan erst durch das Speichern in der Datenbank und das erneute Laden synchronisiert. Es kann nur ein Person-Feld geben. Die Rollen-spezifischen Funktionen dürfen nur Wrapper, um dieses eine Feld sein, also eine Fassade zur Konvenienz.