Fabi Geschrieben 10. März 2005 Teilen Geschrieben 10. März 2005 Hallo Leute, ich habe da mal eine Frage bzgl. Is-A-Beziehungen. Eine Isa-Beziehung ist ja mit der Vererbung zu vergleichen. Also, man hat zum Beispiel eine Tabelle Bedienstete mit Personalnr, Geburtsdatum,... . Und darunter zwei Tabellen, Angestellter(Personalnr, Monatsgehalt...) und Arbeiter(Personalnr, Stundengehalt, ...). Wie realisiere ich das jetzt in einer Programmiersprache? Also, ich möchte eine Abfrage über alle Bediensteten die am 18.09.1980 Geburtstag haben und das dazugehörige Gehalt. Dann müsste ich ja zuerst in der Tabelle Bedienstete nach Mitarbeitern mit diesem Geburtstag suchen und dann, ??? Muss ich dann jede Tabelle, die mit der Obertabelle in Beziehung steht nach der Personalnr durchsuchen, oder wie kann man das sonst realisieren? Bei zwei Tabellen geht das ja, aber wenn das mal hundert Untertabellen sind, werden das dann schön viel Selects und vom Traffic aufn DB-Server gar nicht zu sprechen. Vielen Dank für eure Antwort im Voraus. Viele Grüße, Fabian Weber Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Goos Geschrieben 10. März 2005 Teilen Geschrieben 10. März 2005 Du kannst die "Untertabellen" doch alle auf einmal joinen und erhaelst so das entsprechende Gehalt von den Mitarbeitern (fuer die einen halt bezogen auf den Monat und fuer die anderen auf die Stunde). Wenn du allerdings mal 100 solcher Tabellen hast, dann ist wahrscheinlich nur dein DB-Design schlecht Goos Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
arrayhunter Geschrieben 10. März 2005 Teilen Geschrieben 10. März 2005 Wenn du allerdings mal 100 solcher Tabellen hast, dann ist wahrscheinlich nur dein DB-Design schlecht Goos das sehe ich genauso, Ich kenne die Anforderungen der Software nicht, aber ev. wäre es sinnvoller ein BitFeld in der Tabelle "Bedienstete" zu setzen, je nachdem, ob der Mitarbeiter nun Angestellter o. Arbeiter ist und eventuell "Verknüpfungstabellen " anzulegen.das spart u.U. wieder ein paar Joins aber wie immer gibt es 1000 'e Wege , um das Problem zu lösen Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Fabi Geschrieben 10. März 2005 Autor Teilen Geschrieben 10. März 2005 Das mit den 100 Tabellen war auch nicht so ernst gemeint. Würde ich jetzt aber auch nicht als schlechtes DB-Design ansehen. Wenn ihr zum Beispiel den Datenbankaufbau der Agentur für Arbeit als Beispiel nehmt. Eine generelle Obertabelle "Arbeitlose" und dann gibt es ja zig Untertabellen bei den Berufen. Arzt, Mechaniker, ..... Und da kommen dann ganz schnell 100 Tabellen zusammen. Und das ist dann sicher kein schlechtes DB-Design. Aber zurück zum Thema. Also das mit dem Bitfeld hab ich mir auch schon überlegt, war für mich aber irgendwie nicht die sauberste Lösung für dieses Problem. Dachte, da gibts andere Möglichkeiten. Aber Danke. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Goos Geschrieben 10. März 2005 Teilen Geschrieben 10. März 2005 Das mit den 100 Tabellen war auch nicht so ernst gemeint. Würde ich jetzt aber auch nicht als schlechtes DB-Design ansehen. Wenn ihr zum Beispiel den Datenbankaufbau der Agentur für Arbeit als Beispiel nehmt. Eine generelle Obertabelle "Arbeitlose" und dann gibt es ja zig Untertabellen bei den Berufen. Arzt, Mechaniker, ..... Und da kommen dann ganz schnell 100 Tabellen zusammen. Und das ist dann sicher kein schlechtes DB-Design. Woher bist du dir sicher, dass es bei deinem genannten Beispiel zig Untertabellen gibt? Goos Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Fabi Geschrieben 10. März 2005 Autor Teilen Geschrieben 10. März 2005 Naja, wenn man für jede Berufsgruppe eine Tabelle erstellt, dann kommt man auf diese Menge. Was haltet ihr von diesem Datenbankaufbau: Checkpoint Datenbankaufbau Erklärung dazu gibts hier: http://forum.fachinformatiker.de/showthread.php?t=75476 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Wolle Geschrieben 10. März 2005 Teilen Geschrieben 10. März 2005 Bleib doch bitte in einem Thread bei einem Thema, sonst wirds nur unnötig unübersichtlich. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Goos Geschrieben 11. März 2005 Teilen Geschrieben 11. März 2005 Naja, wenn man für jede Berufsgruppe eine Tabelle erstellt, dann kommt man auf diese Menge. Weshalb sollte man aber fuer jede Berufsgruppe eine eigene Tabelle erstellen? Goos Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.