![]() |
Datenbank: Paradox • Version: 7 • Zugriff über: TQuery
Verknüpfung von Tabellen
Hallo...
Ich habe ein Problem und hoffe ihr könnt mir helfen... Ich habe zwei Tabellen zum Beispiel Videos und Kunden... Diese Tabellen möchte ich jetzt m:n Verknüpfen, wie machen ich das... Die Tabellen sind vom Typ TTable. Und wenn die dann Verknüpft sind möchte ich die durchsuchen... Wie mache ich das??? Danke schonmal im vorraus.... |
Re: Verknüpfung von Tabellen
Zitat:
SQL-Code:
Besser wäre aber in diesem Fall noch eine dritte Tabelle, in der steht, welcher Kunde welches Video wann ausgeliehen hat. Sonst hast Du bei einer m:n Verknüpfung ja sowohl die Videodaten als auch die Kundendaten doppelt!
SELECT Kunden.Name,
Kunden.Nummer, Video.Titel FROM Kunden LEFT OUTER JOIN Video ON Video.Kundennummer = Kunden.Nummer |
Re: Verknüpfung von Tabellen
Habe das noch nicht ganz verstanden....
Ich habe in einer Tabelle die Kunden und möchte in einer Anderen die Videos haben... nun möchte ich wenn ein Kunde mehrere Videos ausleiht... das ich das sehen kann welche er ausleiht... und wenn von einem film mehrere weg sind das ich sehen kann wer die hat... außerdem komme ich nicht so ganz mit der suche klar... ich möchte gerne nach alles suchen können und auch nach mehreren kriterien... danke schonmal |
Re: Verknüpfung von Tabellen
wie wäre es erstmal mit einem db tutorial?
|
Re: Verknüpfung von Tabellen
Ich denke das habe ich nicht nötig...
mir ist schon klar was er meint, aber ich weiss nicht genau wie ich das vernünftig hinbekomme wenn ich mich an die normalformen halten muss... ich kann zum beispiel eine dritte tabelle machn in der ich die ID der videos-tabelle und die id der kunden-tabelle mit einander verknüpfe, aber ich weiss nicht wie ich das dann vernünftig anzeigen soll... wenn ich zum beipiel auf einen kunden klicke, das ich dann sehe welche filme der ausgeliehen hat... probleme habe ich außerdem mit der suche... |
Re: Verknüpfung von Tabellen
Zitat:
Beipiel qryKunden:
SQL-Code:
SELECT *
FROM Kunden WHERE id = :id
Delphi-Quellcode:
Beispiel für 2 Stufige Subquery der ausgeliehenen Filme:
qryKunden.ParambyName.('Id').AsInteger := fKundenId
qryKunden.Open;
SQL-Code:
Und zum Verbinden
SELECT Filme.Titel,
Ausleih.Datum FROM Ausleih LEFT OUTER JOIN Filme on Filme.Id = Ausleih.FilmId WHERE Ausleih.KundenId = :Id
Delphi-Quellcode:
Jedesmal wenn Du den Tabellenzeiger in qryKunden (dsKunden) bewegst (Next, Prior etc.) prüft dann qryAusleih über eine Notification die DataSource und aktualisiert sich selbst (d.h. macht Close, füllt den Parameter :id mit dem GLEICHNAMIGEN Wert aus qryKunden und wieder Open).
qryAusleih.DataSource := dsKunden;
Analog kannst Du das auch umgekehrt bei den Filmen machen, also wer hat welchen Film ausgeliehen. In den jweiligen Grids könntest Du auch gleich Bearbeitungsoptionen mit reinnehmen, Neu, Löschen usw. dann kannst Du von den Kunden gleich zum Verleih springen oder vom Film einen Kunden entfernen. |
Re: Verknüpfung von Tabellen
Zitat:
Also bei einer Videothek gibt es ja möglicherweise mehrere Exemplare vom gleichen Film. Wenn man schlau ist, hat jedes Medium einen eindeutigen Barcode. Also gibt es nun 3 Tabellen: Kunden, Videos und Medien. Die Tabelle Medien hat folgende Felder:
Code:
Ob ein Kunde ein Medium ausgeliehen hat oder nicht, wird in der Tabelle Medien vermerkt.
IdMedia - der eindeutige Schlüssel (=der Barcode)
IdVideo - Verweis auf die Filmdaten Quality - 1=Neuwertig 6=kaputt UseCount - Anzahl der Ausleihvorgänge IdKunde - Der Kunde, der den Film hat oder (NULL) Mediatype- 0=VHS, 1=DVD, 2=SuperDVD, 3= AudioCD, .... Denn ein physikalischer Gegenstand kann entweder bei einem Kunden sein oder im Laden. Zusätzlich sollte man eine Historytabelle führen, mit der man sämtliche Ausleih- und Rückgabevorgänge nachvollziehen kann. In der Historytabelle steht IdKunde, IdMedia, Vorgang (1=Ausleih, 2=Rück), DatumUhrzeit, Verkaeufer, ... Das sollte dir doch mal genügend Anregungen für das DB Design geben. |
Re: Verknüpfung von Tabellen
sauber, danke...genau sowas habe ich gesucht...
und wie funktioniert das mit der suche?? die aufgabe ist das ich nach allem suchen kann und auch nach mehreren kriterien auf einmal... danke |
Re: Verknüpfung von Tabellen
Zitat:
|
Re: Verknüpfung von Tabellen
Wenn ich mit einem Query und select nach sachen
gesucht habe, wie kann ich die ergebnisse dann nochmal nach anderen sachen durchsuchen??? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:12 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