php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 06.07.2006, 15:14  
Erfahrener Benutzer
 
Registriert seit: 03.04.2006
Beiträge: 222
<Daniel>
Standard [Suche] Hilfe zu einem Tabellen Verknüpfungs Problem

Ich habe hier grade eine Denkblockade und ich hoffe ihr könnt mir helfen ^.^ (es geht um eine DB in mySQL)

Beispiel:
Ich habe eine Tabelle für versch. Bereiche einer Firma die sieht ungefähr so aus:

Tabelle: Bereiche
========

Bereich | Ansprechp | Nummer | BID |
====================================
B 1 | Dieter | 232323 | 1 |
B 2 | Peter | 243543 | 2 |
...
====================================

Dann habe ich noch eine Tabelle wo allgemein alle Produkte die benutzt werden, eingetragen werden:

Tabelle: Produkte
========

Name | Hersteller | Telefon | PID |
===================================
No1 | Werk1 | 35543 | 1 |
No2 | Werk2 | 45534 | 2 |
...
===================================

Jetzt möchte ich aber, das ganze so mit einander verknüpfen dass man bei der Auswahl nur z.B. Bereich 1 angibt und dann angezeigt wird, welche Produkte im Bereich 1 verwendet werden.
Wie sollte ich das am besten machen? Soll ich in der Tabelle 'Bereich', eine neue Spalte machen, wo dann die verwendeten Produkte eingetragen werden? Oder soll ich in der Tabelle 'Produkte' eine Spalte machen, wo steht in welchen Bereichen das eingesetzt wird?
GIbt es evtl. eine elegantere Lösung?
Sagen wir mal, ich nehme die erste Lösung:

Bereich | Ansprechp | Nummer | BID | Produkte ID |
==================================================
B 1 | Dieter | 232323 | 1 | 1,2,3 |
B 2 | Peter | 243543 | 2 | 4,5,6 |
...
==================================================

So, wie kann ich ihm jetzt sagen, dass jede Zahl bei Produkte ID, sich auf die PID in der Tabelle Produkte bezieht und dass er für jede dieser Zahl den Namen aus der Tabelle Produkte anzeigen soll?

Ich hoffe ihr könnt mir helfen und dass das nicht zu viel verlangt ist
Die Tabellen sind soweit fertig, nur weiß ich nicht wie ich diese Verknüpfung Code Technisch hinbekommen soll

Gruß

P.S.: Ich bin mySQL Anfänger und das ist nicht für komerzielle Zwecke bestimmt, sondern nur als Übung für mich!
<Daniel> ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 06.07.2006, 15:28  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

1:n oder n:m Beziehungen (ein (1) Bereich hat beliebig viele (n) Produkte) löst man mit Hilfe einer Verknüpfungs-Tabelle.

linkBereicheProdukte
bid | pid

Dort trägst du alle Kombinationen ein, die es gibt. Wenn Bereich 1 Produkt 3 und 4 hat, trägst du
1 | 3
1 | 4
in diese Link-Tabelle ein.
Die Auflistung der Produkte des Bereichs erhältst du mittels JOIN
SELECT p.* FROM linkBereicheProdukte AS lbp INNER JOIN produkte AS p ON lbp.pid = p.id WHERE lbp.bid = 1
(oder statt INNER JOIN-ON-Konstrukt "NATURAL JOIN produkte AS p")

http://en.wikipedia.org/wiki/Join_%28SQL%29
http://de.wikipedia.org/wiki/Normali...28Datenbank%29
Zergling-new ist offline   Mit Zitat antworten
Alt 06.07.2006, 15:33  
Moderator
 
Benutzerbild von agrajag
 
Registriert seit: 02.10.2006
Beiträge: 3.820
PHP-Kenntnisse:
Fortgeschritten
agrajag wird schon bald berühmt werdenagrajag wird schon bald berühmt werden
Standard Re: [Suche] Hilfe zu einem Tabellen Verknüpfungs Problem

Zitat:
Zitat von <Daniel>
Soll ich in der Tabelle 'Bereich', eine neue Spalte machen, wo dann die verwendeten Produkte eingetragen werden? Oder soll ich in der Tabelle 'Produkte' eine Spalte machen, wo steht in welchen Bereichen das eingesetzt wird?
Das hängt davon ab ob ein Produkt gleichzeitig in mehreren Bereichen verwendet werden kann, ob ein bereich mehrere Produkte verwendet oder ob beides möglich ist.


Kann ein Produkt nur in einem Bereich verwendet werden, dann kannst du diesen Bereich in einer zusätzlichen Spalte bei den Produkten vermerken.

Kann ein Bereich nur ein Produkt verwenden - dann kannst du das in einer Spalte in der Tabelle Bereich vermerken.

Kann ein Produkt in mehreren Bereichen verwendet werden und ein Bereich kann mehrere Produkte haben, dann solltest du eine extra Tabelle anlegen in der du diese Beziehung speicherst: Lege eine Tabelle "Verwendung" an mit 2 Spalten Bereich und Produkt.

Dein Beispiel:
Code:
Bereich | Ansprechp | Nummer | BID | Produkte ID |
==================================================
B 1 | Dieter | 232323 | 1 | 1,2,3 |
B 2 | Peter | 243543 | 2 | 4,5,6 |
Sähe dann so aus:
Code:
Bereich | Produkt
=============
B1 | 1
B1 | 2
B1 | 3
B2 | 4
B2 | 5
B2 | 6
Am besten du holst dir ein Buch und liest dir ein paar Kapitel über Datenbankentwurf durch.
__________________
Today you...Tomorrow me.
agrajag ist offline   Mit Zitat antworten
Alt 10.07.2006, 15:15  
Erfahrener Benutzer
 
Registriert seit: 03.04.2006
Beiträge: 222
&lt;Daniel&gt;
Standard

Danke euch beiden! Ich mach gleich mal so eine dritte Tabelle, nur das verwirrt mich:
SELECT p.* FROM linkBereicheProdukte AS lbp INNER JOIN produkte AS p ON lbp.pid = p.id WHERE lbp.bid = 1

Was ist:
p.*?
lbp?
p?
lbp.pid = p.id?
lbp.bid = 1?

Eine kurze Begriffs erklärung wäre nett.
Also pid und bid sind die Spalten Namen aus linkBereicheProdukte, aber der Rest?

Gruß
Daniel
&lt;Daniel&gt; ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
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

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Ich suche Hilfe bei einem Problem mit Navicat Chris1234 PHP Tipps 2008 1 09.02.2008 09:41
Volltext-Suche Problem - 2 verschiedene Tabellen Datenbanken 1 18.09.2006 16:32
Timestamp problem -- hilfe -- Datenbanken 11 16.01.2006 18:29
Bildergallery - Problem - HILFE! PHP Tipps 2005-2 2 21.08.2005 20:54
Problem mit osCommerce brauche dringend Hilfe... PHP Tipps 2005 12 13.05.2005 08:40
Noch ein tabellen Problem PHP Tipps 2005 8 01.04.2005 12:19
Problem mit Tabellen! HTML, Usability und Barrierefreiheit 3 30.03.2005 03:08
2 Tabellen verknüpfen, Problem Datenbanken 6 30.12.2004 09:53
[Erledigt] Verzeichniss Problem!!!! HILFE!!!!! Server, Hosting und Workstations 6 30.11.2004 21:42
[Erledigt] Hilfe - Problem mit Warenkorb PHP Tipps 2004 1 26.11.2004 11:32
problem mit einer abfrage über mehrere tabellen! PHP Tipps 2004 1 12.10.2004 18:54
über PHP Daten in MySQL Tabellen updaten -- Problem PHP Tipps 2004 4 27.09.2004 21:34
2 Tabellen kleines Problem.... Datenbanken 7 10.08.2004 13:55
[Erledigt] Problem bei Tabellenerstellung, bitte um Hilfe Datenbanken 4 01.07.2004 15:19
tabellen problem HTML, Usability und Barrierefreiheit 15 11.06.2004 14:26

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
verknüpfungsproblem hilfe, verknüpfungs code, tabellen verknüpfen navicat mysql, verknüpfungs codes, verknüfungs problem, navicat tabellen verknüpfen, verknüpfungsproblem was kann ich da machen, verknüpfungsfehler

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




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.