AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Master-Detail mit many-to-many Relation
Thema durchsuchen
Ansicht
Themen-Optionen

Master-Detail mit many-to-many Relation

Ein Thema von Stevie · begonnen am 12. Aug 2011 · letzter Beitrag vom 15. Aug 2011
 
FredlFesl

Registriert seit: 19. Apr 2011
293 Beiträge
 
Delphi 2009 Enterprise
 
#7

AW: Master-Detail mit many-to-many Relation

  Alt 12. Aug 2011, 20:54
Lies doch einfach die drei Tabellen in den Speicher.
Du hast doch eine Master-Detail-Beziehung. Dann zwei Grids, links Autoren, rechts die Bücher, Filter in den Büchern setzen, fertig.
Gut der Filter in der Bücher-Tabelle ist nicht ganz trivial, aber mit einer Hashmap wirklich schnell umgesetzt.
Sei BooksAndAuthors die Relationstabelle mit zwei Spalten (na gut, 3, aber den PK vergessen wir) "AuthorID" und "BookID".
Dann erstellst Du eine <Int, List<Int>>Hashmap. Key ist die AuthorID und pro Author wird eine Liste der BookIDs in der Map abgelegt.
Wenn du durch die Autoren scrollst, dann filterst Du die Bücher einfach jeweils neu, indem Du beim Scrollen die zum fokussierten Autoren-datensatz gehörende jeweilige BookID-Liste aus der Hashmap holst und dann nur die Bücher anzeigst, die in der Liste sind.

Das geht auch ohne Hashmap, weil eine gute DB das auch (fast) in Echtzeit hinbekommt. Bei jedem scrollen in der Autorentabelle einfach ein
Code:
Select b.* from Books b join BooksAndAuthors ba on b.bookid = ba.bookID where ba.AuthorID = :AuthorID
absetzen... des ist fast genauso schnell. Cachen kann man das auch noch, falls Du die Amerikanische Staatsbibliothek mit der Software ausrüsten willst...

Oder hab ich dein Problem nicht verstanden?
Das Bild hängt schief.

Geändert von FredlFesl (12. Aug 2011 um 21:01 Uhr)
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:26 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz