![]() |
Datenbanken Anstosshilfe
ich habe eine tabelle mit fahrzeugen (jedes fahrzeug kommt nur einmal vor) und eine tabelle mit ausrüstungsgegenständen (jeder gegenstand kommt nur einmal vor)
wenn ich jetzt zwischen den beiden tabellen eine verknüpfung herstellen will (jedes fahrzeug hat eine variable anzahl von ausrüstungsgegenständen, aber eine ausrüstung kann auch in mehreren fahrzeugen vorhanden sein...) brauch ich dafür unbedingt eine dritte tabelle dazwischen oder gibt es eine andere elegante (!!!) lösung? (mir fällt nur die extratabelle ein, allerdings scheu ich davor noch ein bisserl zurück...) außerdem bräuchte ich noch die passenden sql-abfragen für diese tabellen, irgendwie funzt bei mir überhaupt nix (*dentagvormschleppiverschissenhab*) |
ich hoffe ich habe das richtig verstanden...
nein brauchst du nicht unbedingt, reicht nur eine zusätzliche Spalte, mit den Gegenständen (als Zahl oder so)... tblCar: Auto - Gegenstände Audi - 1,5,6,7 VW - 2,5,6 Opel - 1,5,6 tblequipment: 1 - Reifen 5 - Lenkrad 6 - Lichtmaschine etc... MySQL ? oder MS Access ? |
Wenn ich eine extra Spalte mache, müsste ich die Werte als String reinspeichern, ganz abgesehen davon, dass keine Aktualisierungsweitergabe stattfindet...
Das ganze ist für ein CMS (konkret die Verwaltung der Feuerwehrfahrzeuge und dazu halt ein auszugsweiser Plan welche Ausrüstung in welchem Fahrzeug ist...) |
Hmmm wo ist dann das Problem ?
Irgendwann muss du einmal einem Fahrzeug einen Gegenstand zuordnen... Ob das in einer extra Tabelle oder extra Spalte geschieht...ist ansicht sache... |
Zitat:
und genau diese 1:n beziehungen krieg ich anders nicht hin :( |
Sers!
Also wenn ich dich richtig verstanden habe musst du das ganze als m:n Beziehung (1 Auto -> mehrere Gegenstände, 1 Gegenstand -> mehrere Autos) auflösen und das geht nur über eine Zwischentabelle. z.b.: (Felder mit ID sind eindeutige Bezeichner, also Primärschlüssel) Tabelle tblFahr (Fahrzeuge): FA_ID, Fahrzeugname, ... Tabelle tblGeg (Gegenstände): GE_ID, Gegenstandsname, ... Zwischentabelle tblFahrGeg (FahrzeugGegenstände): FA-GE_ID, FA_ID, GE_ID um jetzt anzeigen zu lassen, in welchem Fahrzeug welche Gegenstände sind: SELECT Fahrzeugname,Gegenstandsname FROM tblFahr, tblGeg WHERE tblFahr.FA_ID=tblFahrGeg.FA_ID AND tblGeg.GE_ID=tblFahrGeg.GE_ID hoffe geholfen zu haben mfg Thomas |
Du bekommst das nicht hin weil das keine 1:n sondern eine m:n Relation ist. Auflösen einer m:n Beziehung schaffst nur mit Hilfe einer weiteren Tabelle die zumindest die beiden Schlüsselfelder der zu verknüpfenden Tabellen hat.
|
Zitat:
:ja: hört sich gut an. :D |
aha, ich nannte es halt eine n:1:n beziehung :D (in meiner mir eigenen typisch unverständlichen weise)
allerdings klappt das ganze noch immer nicht so wie ich will :( Code:
SELECT DISTINCTROW fahrzeuge.f_name, ausruestung.a_name ich will, dass neben 1. fahrzeug eine liste von allen darin enthaltenen gegenständen auftaucht, nur irgendwie frissts meinen sql-string nicht :( |
die syntax welchen dbs ist das :rolleyes:
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 08:39 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag