Guten Tag,
ich stehe gerade vor folgender Aufgabe, habe diesbezüglich auch schon eine Lösung gefunden aber ich fühle mich etwas unsicher ob Dies wirklich eine elegante Lösung darstellt.
Folgender Sachverhalt:
Ich habe 3 Tabellen in der Datenbank - Mitarbeiter, Geschäftsstellen und eine Verlinkung Beider.
Die Klasse speichert in der Datenbank also ab welcher Mitarbeiter in welcher Geschäftsstelle tätig ist und ob er dort z.b. noch der Geschäftsführer ist. Wichtig: Mitarbeiter können beliebig vielen Geschäftsstellen zugeordnet werden und haben nicht nur eine Stelle.
So - Jetzt schreibe ich gerade eine Funktion zur Bearbeitung der einzelnen Mitarbeiter wo im Frontend natürlich eine Liste aller Geschäftsstellen auftauchen soll inklusive der Einträge wo der Mitarbeiter arbeitet.
Ich habe eine temporäre Klasse OULink angelegt für die notwendigen Daten, welche ich im Frontend dann benötige.
Mit meiner aktuellen Lösung ziehe ich natürlich alle vollständigen DB-Einträge der Geschäftsstellen heraus, danach alle Einträge der Verlinkungs-Tabelle und dann mit der doppelten for-Schleife über alles hindurch.
Zugegeben die reale Anzahl der Mitarbeiter und Geschäftsstellen wird sich sehr in Grenzen halten so dass es eigentlich keine Frage der Performance ist, ich fühle mich mit meiner Lösung aber vom Design/Performance trotzdem etwas unsicher.
Und wollte nachfragen ob man das so stehen lassen kann bzw. ob es einen eleganteren Weg gibt.
Vielen Dank
ich stehe gerade vor folgender Aufgabe, habe diesbezüglich auch schon eine Lösung gefunden aber ich fühle mich etwas unsicher ob Dies wirklich eine elegante Lösung darstellt.
Folgender Sachverhalt:
Ich habe 3 Tabellen in der Datenbank - Mitarbeiter, Geschäftsstellen und eine Verlinkung Beider.
Code:
class userOfficeLink {
private int user_id;
private int office_id;
boolean is_officeLeader;
}
Die Klasse speichert in der Datenbank also ab welcher Mitarbeiter in welcher Geschäftsstelle tätig ist und ob er dort z.b. noch der Geschäftsführer ist. Wichtig: Mitarbeiter können beliebig vielen Geschäftsstellen zugeordnet werden und haben nicht nur eine Stelle.
So - Jetzt schreibe ich gerade eine Funktion zur Bearbeitung der einzelnen Mitarbeiter wo im Frontend natürlich eine Liste aller Geschäftsstellen auftauchen soll inklusive der Einträge wo der Mitarbeiter arbeitet.
Code:
class UOLink {
public String office;
public int office_id;
public boolean isEmployee;
public boolean isOfficeLeader;
}
List<Office> officeList = OfficeDB.getOffices();
List<UserOfficeLink> userOfficeLinkList = UserOfficeLinkDB.getLinkByUserID(userID);
List<UOLink> uolink = new ArrayList();
if(!officeList.isEmpty() ) {
for(Office officeTemp : officeList) {
UOLink temp = new UOLink();
temp.office = officeTemp.getName();
temp.office_id = officeTemp.getId();
temp.isEmployee = false;
temp.isOfficeLeader = false;
if(!userOfficeLinkList.isEmpty() ) {
// check if user is working in that office
for(UserOfficeLink uoLinkTemp : userOfficeLinkList) {
if(uoLinkTemp.user_id == userTemp.getId() ) {
temp.isEmployee = true;
temp.isOfficeLeader = uoLinkTemp.is_officeleader;
}
}
}
uolink.add(temp);
}
}
else {
// do something if no office was found in database
}
Ich habe eine temporäre Klasse OULink angelegt für die notwendigen Daten, welche ich im Frontend dann benötige.
Mit meiner aktuellen Lösung ziehe ich natürlich alle vollständigen DB-Einträge der Geschäftsstellen heraus, danach alle Einträge der Verlinkungs-Tabelle und dann mit der doppelten for-Schleife über alles hindurch.
Zugegeben die reale Anzahl der Mitarbeiter und Geschäftsstellen wird sich sehr in Grenzen halten so dass es eigentlich keine Frage der Performance ist, ich fühle mich mit meiner Lösung aber vom Design/Performance trotzdem etwas unsicher.
Und wollte nachfragen ob man das so stehen lassen kann bzw. ob es einen eleganteren Weg gibt.
Vielen Dank