SetaPDF
-


Hinweise


Antwort
 
LinkBack Themen-Optionen Thema durchsuchen Thema bewerten
Alt 22.04.2004, 02:00   #1
TP-Insider
 
Benutzerbild von lipsum
 
Registriert seit: Feb 2004
Ort: zinnwald / osterzgebirge
lipsum hilft, wo's gehtlipsum hilft, wo's gehtlipsum hilft, wo's geht

mehrere tabellen vernüpfen sinnvoll?


moin...

ich weiß, der betreff ist nicht sehr aussagekräftig.

zu meinem problem:
ich habe auf einer seite für eine kommune die rubrik "freizeitangebote", die in einer tabelle gespeichert sind. die freizeitangebote können von der verwaltung aus über webinterface bearbeitet werden.

im moment besteht die tabelle aus zwei spalten:
- "fr_art" art des angebots (z.b. reiten, oder baden oder bowling usw.)
- "fr_info" mit infos zu der jeweiligen freizeitart

wenn es nun mehrere angebote zu einer freizeitart gibt (z.b. baden), dann habe ich in der spalte "fr_info" bisher einfach die einzelnen angebote (z.b. freibad-1, freibad-2, hallenbad-1) in der gleichen tabellenzelle eingefügt. das ist soweit kein problem, in der ausgabe kann ich über eine liste die freizeitaktivitäten auswählen und bekomme dann den inhalt der jeweiligen zelle ausgegeben.

nun möchte ich aber zu den einzelnen angeboten noch weitere infos speichern, z.b. kontakt, öffnungszeiten oder einen link zur webseite...

das geht natürlich mit der bisherigen tabelle nicht. ich müßte also zwei tabellen anlegen:

tabelle_1 - freizeitarten
tabelle_2 - freizeitangebote mit weiteren einer zeile für jedes angebot (und den entsprechenden spalten für weitere infos)

meine frage nun:
wie kann ich die tabellen entsprechend verknüpfen, so das bei der abfrage nach "baden" alle einträge aus der angebotstabelle angezeigt werden, die zu "baden"passen?

bzw., um beim beispiel "baden" zu bleiben - wie kann ich die tabellen so verknüpfen, das das "freibad-1" sowohl unter der rubrik "baden", als auch unter der rubrik "bootsverleih" gefunden wird?

sorry für meine vielleicht dummen fragen, aber ich hab bisher keine anleitung gefunden, die ich wirklich verstanden hab.

ich hoffe, ich hab mich halbwegs verständlich ausgedrückt.

gruß
steffen
lipsum ist offline   Mit Zitat antworten


Alt 24.04.2004, 00:00   #2
TP-Insider
 
Benutzerbild von lipsum
 
Registriert seit: Feb 2004
Ort: zinnwald / osterzgebirge
lipsum hilft, wo's gehtlipsum hilft, wo's gehtlipsum hilft, wo's geht
hat niemand eine idee?
oder ist das gar nicht sinnvoll, für sowas zwei tabellen anzulegen?

wie schon gesagt - ich habe diverse freizeitangebote, zu denen es jeweils ein oder mehrere "anbieter" gibt. allerdings kann eben auch ein "anbieter" mehrere freizeitangebote anbieten. ich möchte nun vermeiden, alles mehrfach eingeben zu müssen. also jede "freizeitrubrik" nur einmal und jeden "anbieter" auch nur einmal. aber eben beziehungen zwischen "angebot" und "anbieter" herstellen.
lipsum ist offline   Mit Zitat antworten
Alt 24.04.2004, 21:07   #3
TP-Supporter
 
Benutzerbild von Filou
 
Registriert seit: Aug 2002
Ort: Erde
Filou macht alles soweit korrekt
du redest von joins
diese sind sogar sehr sinnvoll, da manches gar nicth anders zu ösen ist, oder nur über zig unnötiger abfragen, die du mittels joins in einer abfragen kannst.

such mal im forum nach join

ciao filou
__________________
ich liebe dich, Hans-Jörg. gebt schwulen gleiche rechte.
erst wenn wir alles verloren haben, haben wir die freiheit alles zu tun.(tyler durden)
Filou ist offline   Mit Zitat antworten
Alt 25.04.2004, 22:03   #4
TP-Specialist
 
Benutzerbild von mike
 
Registriert seit: Jan 2002
Ort: TP/Dynamik
mike bringt sich richtig ein
dein problem ist ein so genannter m:n Bezug. Ein wert einer Tabelle kann sich auf mehrere WErte in der andern Tabelle beziehen und umgekehrt. Damit kommt eine Relationelle DB nicht so einfach zurecht. Um das zu lösen musst du dir eine Zwischentabelle aufbauen, wo du genau die Bezüge wie gewünscht mittels ID Eintrag der beiden Tabellen auflöst.
__________________
Gehelft? Hier kannst du dich bedanken.

mike
mike ist offline   Mit Zitat antworten
Alt 26.04.2004, 01:33   #5
TP-Insider
 
Benutzerbild von lipsum
 
Registriert seit: Feb 2004
Ort: zinnwald / osterzgebirge
lipsum hilft, wo's gehtlipsum hilft, wo's gehtlipsum hilft, wo's geht
filou und mike, vielen dank für eure antworten.

ich hab mich mal in der dclp-faq zum theman join eingelsen und es ehrlich gesagt nicht wirklich verinnerlichen können.

ich hab das so verstanden, das ich damit abfragen über zwei tabellen machen kann, wenn z.b. in einer tabelle die struktur aus id und angebot besteht, in der anderen tabelle aus id, anbieter und spalte id_des angebotes.

das bedeutet aber, das ich in der tabelle "anbieter" in einer spalte eine id vergeben muß, die einer id der tabelle "angebote" zuzuordnen ist.

wenn aber nun ein "anbieter" mehrere "angebote" abdeckt, so ist es doch eigentlich egal, ob in der tabelle "anbieter", zeile "freibad_1" dann z.b. "baden, miniboot," steht, oder "1, 2" und ich dann die 1 oder 2 per join aus der tabelle "angebote" abfrage? ich könnte doch dann die zelle mit den angeboten einfach nach einem entsprechendem string (z.b. "miniboot") durchsuchen und dann in abhängigkeit vom vorhandensein dieses strings ein ergebnis anzeigen lassen.

die idee von mike hät ich jetzt gern näher erklärt - ich habe bei der websuche nichts entsprechendes gefunden. also drei tabellen. eine mit angeboten, eine mit anbietern. und die dritte dann mit den daten, welcher anbieter, welches angebot führt, bzw. umgekehrt. wie muß nun diese dritte tabelle von der struktur her aufgebaut sein?

vielleicht drücke ich mich aber auch nur extrem bescheuert aus? ist irgendwie schwer, wenn man im kopf ne vorstellung hat und das dann in worte fassen soll.

also bitte nochmal nachfragen, wenn ich mich irgendwie unklar ausgedrückt haben sollte.

ich hab das gefühl, die lösung mit den drei tabellen ist die richtige für meinen fall. ich frag mich nur, ob es auch sinnvoll ist... habe ca. 20 freizeitangebote und ca. 50 anbieter. vielleicht ist ja auch eine tabelle mit je einer zeile für "angebot/entsprechenden anbieter" und abfrage über "distinct" usw. ökonomischer.

gruß
steffen
lipsum ist offline   Mit Zitat antworten
Alt 26.04.2004, 10:23   #6
TP-Specialist
 
Benutzerbild von mike
 
Registriert seit: Jan 2002
Ort: TP/Dynamik
mike bringt sich richtig ein
http://www.oszhdl.be.schule.de/gymna...k/datenbanken/

p.s. es ist erstaunlich, wieviele treffer google ausspuckt, alleine wenn man 'm:n beziehung' eingibt.
__________________
Gehelft? Hier kannst du dich bedanken.

mike
mike ist offline   Mit Zitat antworten
Alt 27.04.2004, 00:09   #7
TP-Insider
 
Benutzerbild von lipsum
 
Registriert seit: Feb 2004
Ort: zinnwald / osterzgebirge
lipsum hilft, wo's gehtlipsum hilft, wo's gehtlipsum hilft, wo's geht
so, jetzt habe ich viel über 'm:n beziehungen' gelesen. die theorie ist für mich auch logisch und verständlich. leider habe ich kein verständliches praktisches beispiel für die umsetzung gefunden. da ich selten datenbankgeschichten mache, brauche ich nach möglichkeit ein einfaches beispiel, um das ganze nachzuvollziehen und verstehen zu können.

im workshop "einstieg in...teil 8" hier wurde das problem ja schon kurz angerissen. ich versuche jetzt mal, das selber nachvollziehen zu können - wäre nett, wenn mir jemand dabei helfen könnte (gerne auch per pm oder email, falls das hier im forum nicht passend wäre).

hier mal meine vorstellung der tabellenstruktur als anfang:

Code:
baden    ->  freibad-1 und freibad-2
miniboot ->  freibad-2


tabelle "angebote"

+------+----------+
| id_a | angebot  |
+------+----------+
|  1   | baden    |
|  2   | miniboot |
+------+----------+


tabelle "anbieter"

+------+-----------+
| id_b | anbieter  |
+------+-----------+
|  1   | freibad-1 |
|  2   | freibad-2 |
+------+-----------+


tabelle "bezug"

+----+------+------+
| id | id_a | id_b |
+----+-------------+
|  1 |  1   |  1   |
|  2 |  1   |  2   |
|  3 |  2   |  2   |
+----+------+------+
meine konkreten fragen jetzt dazu:
- ist der ansatz der tabellenstruktur so richtig?
- wie frage ich ab, welche anbieter das angebot "baden" haben?

danke und gruß
steffen

Zitat:
Original geschrieben von mike
p.s. es ist erstaunlich, wieviele treffer google ausspuckt, alleine wenn man 'm:n beziehung' eingibt.
ps: es ist erstaunlich, wie wenige relevante treffer google ausspuckt, wenn man 'm:n bezug' eingibt.
lipsum ist offline   Mit Zitat antworten
Alt 27.04.2004, 00:50   #8
TP-Specialist
 
Benutzerbild von mike
 
Registriert seit: Jan 2002
Ort: TP/Dynamik
mike bringt sich richtig ein
deine schlussfolgerungen sind korrekt.

und JETZT erst kommen verknüpfungen ins spiel: (ungetestet)

select a2.anbieter, a1.angebot from
angebote a1,
anbieter a2,
bezug b
where a1.id_a = b.id_a
and a2.id_b = b.id_b

dann bekommst du das raus:
freibad-1, baden
freibad-1, miniboot
freibad-2, baden

einiges rund um sql-abfragen findest du in den basic-Links
__________________
Gehelft? Hier kannst du dich bedanken.

mike
mike ist offline   Mit Zitat antworten
Alt 27.04.2004, 00:52   #9
TP-Specialist
 
Benutzerbild von mike
 
Registriert seit: Jan 2002
Ort: TP/Dynamik
mike bringt sich richtig ein
Zitat:
Original geschrieben von lipsum
ps: es ist erstaunlich, wie wenige relevante treffer google ausspuckt, wenn man 'm:n bezug' eingibt.
p.s.s es ist noch erstaunlicher, wie dreist sich unkreative suchspastiker aus der affäre ziehen wollen
__________________
Gehelft? Hier kannst du dich bedanken.

mike
mike ist offline   Mit Zitat antworten
Alt 27.04.2004, 03:34   #10
TP-Insider
 
Benutzerbild von lipsum
 
Registriert seit: Feb 2004
Ort: zinnwald / osterzgebirge
lipsum hilft, wo's gehtlipsum hilft, wo's gehtlipsum hilft, wo's geht
so, jetzt hab ich blut geleckt...

deine ungetesteten verknüpfungen funktionieren selbstverständlich... ich experimentiere jetzt damit mal ein bißchen rum, um das prinzip zu verstehen (daß ich a1, a2 und b auch durch blubb, blabb und blibb ersetzen kann, hab ich inzwischen schon mitgekriegt - jetzt versuch ich nur noch per logik meine gewünschten ergebnisse zu erzielen).

auch wenn ich ein dreister unkreativer suchspastiker bin - so hat mir doch das obige abfragebeispiel mehr gebracht, die letzen googlestunden.

gruß
steffen
lipsum ist offline   Mit Zitat antworten
Alt 27.04.2004, 10:10   #11
TP-Specialist
 
Benutzerbild von mike
 
Registriert seit: Jan 2002
Ort: TP/Dynamik
mike bringt sich richtig ein
fein
__________________
Gehelft? Hier kannst du dich bedanken.

mike
mike ist offline   Mit Zitat antworten
Alt 28.04.2004, 00:34   #12
TP-Insider
 
Benutzerbild von lipsum
 
Registriert seit: Feb 2004
Ort: zinnwald / osterzgebirge
lipsum hilft, wo's gehtlipsum hilft, wo's gehtlipsum hilft, wo's geht
Lightbulb

so, also die abfrage hab ich hingekriegt. hier mal mein ergebnis:
PHP-Code:
<p><b>Auswahl Angebot:</b></p>
<form name="form1" method="post" action="<?php print $_SERVER['PHP_SELF']; ?>">
<select name="select"><option>Bitte ausw&auml;hlen</option>
    <?php
        $sql 
"SELECT * FROM angebote";
        
$result mysql_query($sql) or die(mysql_error());
        do {  
    
?>
<option value="<?php echo $row['id_a']?>"><?php echo $row['angebot']?></option>
    <?php
        
} while ($row mysql_fetch_assoc($result));
    
?>
</select>
<input type="submit" name="submit" class="button" value="Anzeigen &raquo;">
</form>
<p><b>Ergebnis Anbieter:</b></p>
    <?php
        $sql 
"SELECT a.anbieter FROM anbieter a, bezug b WHERE b.id_a = '$_POST[select]' AND a.id_b = b.id_b";
        
$result mysql_query($sql) or die(mysql_error());
        while (
$row mysql_fetch_assoc($result)) 
        {
               echo 
$row['anbieter']."<br />";
        }
    
?>
soweit zur abfrage. ich hoffe, das halbwegs verstanden zu haben.

vielen dank nochmal
steffen
lipsum ist offline   Mit Zitat antworten
Antwort

  Aktuelles Thema
  TP Hilfe Forum > Web-Editoren & Coding > Traum-Dynamik
mehrere tabellen vernüpfen sinnvoll? mehrere tabellen vernüpfen sinnvoll?
« Hintergrund bleibt beim Aufruf stehen | Realisierung eines kostenpflichtigen Downloadbereichs »

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Thema bewerten
Thema bewerten:

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 an
Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 10:43 Uhr.

Powered by: vBulletin Version 3.7 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd. / Search Engine Friendly URLs by vBSEO 3.2.0 ©2008, Crawlability, Inc.
Traum-Projekt.com | Suchen | Archiv | Impressum | Kontakt | | | Nach oben |



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67