![]() |
![]() |
|
![]() |
![]() |
|
Programmierung Rat & Tat für Programmierer |
![]() |
|
Themen-Optionen | Ansicht |
![]() |
#1 |
Elite
![]() Registriert seit: 14.11.1999
Alter: 39
Beiträge: 1.429
|
![]() 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*) |
![]() |
![]() |
![]() |
#2 |
Veteran
![]() Registriert seit: 04.12.2002
Beiträge: 248
|
![]() 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 ? |
![]() |
![]() |
![]() |
#3 |
Elite
![]() Registriert seit: 14.11.1999
Alter: 39
Beiträge: 1.429
|
![]() 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...) |
![]() |
![]() |
![]() |
#4 |
Veteran
![]() Registriert seit: 04.12.2002
Beiträge: 248
|
![]() 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... |
![]() |
![]() |
![]() |
#5 | |
Elite
![]() Registriert seit: 14.11.1999
Alter: 39
Beiträge: 1.429
|
![]() Zitat:
und genau diese 1:n beziehungen krieg ich anders nicht hin ![]() |
|
![]() |
![]() |
![]() |
#6 |
Master
![]() Registriert seit: 13.08.2003
Beiträge: 624
|
![]() 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 |
![]() |
![]() |
![]() |
#7 |
Classic Car Driver
![]() |
![]() 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.
|
![]() |
![]() |
![]() |
#8 | |
Inventar
![]() Registriert seit: 11.01.2003
Beiträge: 5.292
|
![]() Zitat:
![]() hört sich gut an. ![]()
____________________________________
pssst tanj |
|
![]() |
![]() |
![]() |
#9 |
Elite
![]() Registriert seit: 14.11.1999
Alter: 39
Beiträge: 1.429
|
![]() aha, ich nannte es halt eine n:1:n beziehung
![]() allerdings klappt das ganze noch immer nicht so wie ich will ![]() Code:
SELECT DISTINCTROW fahrzeuge.f_name, ausruestung.a_name FROM fahrzeuge INNER JOIN (ausruestung INNER JOIN kreuztabelle ON ausruestung.a_id = kreuztabelle.aid) ON fahrzeuge.f_id = kreuztabelle.fid GROUP BY fahrzeuge.f_name; ich will, dass neben 1. fahrzeug eine liste von allen darin enthaltenen gegenständen auftaucht, nur irgendwie frissts meinen sql-string nicht ![]() |
![]() |
![]() |
![]() |
#10 |
Inventar
![]() Registriert seit: 11.01.2003
Beiträge: 5.292
|
![]() die syntax welchen dbs ist das
![]()
____________________________________
pssst tanj |
![]() |
![]() |
![]() |
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
|
|