WCM - Das österreichische Computer Magazin Forenübersicht
 

Zurück   WCM Forum > Rat & Tat > Programmierung

Programmierung Rat & Tat für Programmierer

Microsoft KARRIERECAMPUS

Antwort
 
Themen-Optionen Ansicht
Alt 12.09.2004, 18:27   #1
3of4
Elite
 
Registriert seit: 14.11.1999
Alter: 39
Beiträge: 1.429


Standard 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*)
____________________________________
Resistantium est futilius
3of4 ist offline   Mit Zitat antworten
Alt 12.09.2004, 18:35   #2
mtrax
Veteran
 
Registriert seit: 04.12.2002
Beiträge: 248


Standard

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 ?
mtrax ist offline   Mit Zitat antworten
Alt 12.09.2004, 18:49   #3
3of4
Elite
 
Registriert seit: 14.11.1999
Alter: 39
Beiträge: 1.429


Standard

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...)
____________________________________
Resistantium est futilius
3of4 ist offline   Mit Zitat antworten
Alt 12.09.2004, 19:09   #4
mtrax
Veteran
 
Registriert seit: 04.12.2002
Beiträge: 248


Standard

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...
mtrax ist offline   Mit Zitat antworten
Alt 12.09.2004, 19:12   #5
3of4
Elite
 
Registriert seit: 14.11.1999
Alter: 39
Beiträge: 1.429


Standard

Zitat:
Original geschrieben von mtrax
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...
ich will einem fahrzeug viele gegenstände bzw. einem gegenstand viele fahrzeuge zuordnen...
und genau diese 1:n beziehungen krieg ich anders nicht hin
____________________________________
Resistantium est futilius
3of4 ist offline   Mit Zitat antworten
Alt 12.09.2004, 19:24   #6
T.dot
Master
 
Registriert seit: 13.08.2003
Beiträge: 624


Standard

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
T.dot ist offline   Mit Zitat antworten
Alt 12.09.2004, 19:29   #7
Jaguar
Classic Car Driver
 
Benutzerbild von Jaguar
 
Registriert seit: 16.02.2000
Ort: Wien
Beiträge: 569

Mein Computer

Standard

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.
Jaguar ist offline   Mit Zitat antworten
Alt 12.09.2004, 19:33   #8
frazzz
Inventar
 
Registriert seit: 11.01.2003
Beiträge: 5.292


Standard

Zitat:
Original geschrieben von Jaguar
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.



hört sich gut an.
____________________________________
pssst

tanj


frazzz ist offline   Mit Zitat antworten
Alt 12.09.2004, 19:42   #9
3of4
Elite
 
Registriert seit: 14.11.1999
Alter: 39
Beiträge: 1.429


Standard

aha, ich nannte es halt eine n:1:n beziehung (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
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;
Fahrzeuge und Ausruestung sind die Tabellen, ausruestung.aid und fahrzeuge.fid die schlüsselwerte und kreuztabelle meine hilfstabelle...
ich will, dass neben 1. fahrzeug eine liste von allen darin enthaltenen gegenständen auftaucht, nur irgendwie frissts meinen sql-string nicht
____________________________________
Resistantium est futilius
3of4 ist offline   Mit Zitat antworten
Alt 12.09.2004, 19:46   #10
frazzz
Inventar
 
Registriert seit: 11.01.2003
Beiträge: 5.292


Standard

die syntax welchen dbs ist das
____________________________________
pssst

tanj


frazzz ist offline   Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 09:24 Uhr.


Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Forum SEO by Zoints
© 2009 FSL Verlag