php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > SQL / Datenbanken
 

Login

 
eingeloggt bleiben || php-forumjetzt anmelden
 

SQL / Datenbanken Probleme mit SQL? Hier könnt ihr eure Fragen zu SQL (MySQL, PostgreSQL, MS-SQL und andere ANSI-SQL Server) los werden.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 26-08-2002, 16:49
Patryn
 Newbie
Links : Onlinestatus : Patryn ist offline
Registriert seit: Aug 2002
Beiträge: 14
Patryn ist zur Zeit noch ein unbeschriebenes Blatt
Standard Relationale Tabellenverknüpfung oder nicht?

Hallo,

mein Problem ist allgemein mehr ein allgemeines Verständnisproblem für relationale Verknüpfungen zwischen mehreren Tabellen innerhalb einer Datenbank. Ich weiss, dass solche Verknüpfungen einer der großen Stärken von relationalen Datenbanken wie MySQL ist, aber so richtig will mir das ganze irgendwie nicht schmecken.

Mein Problem: Ich habe vor, eine kleine, private Schmuckdatenbank zu erstellen. Hierbei soll ein HTML-Formular als Webfrontend dienen, in das die Daten zu den einzelnen Schmuckteilen eingetragen und schließlich an ein PHP Script übertragen werden. Von dort aus gehts dann in die MySQL Datenbank.

So weit, so gut.
Ein Schmuckstück soll unter anderen folgende Felder besitzen:

- Bestellnr.
- (Schmuck-)Serie
- Schmuckart (Ring, Kette, etc)
- Legierung (WG, GG, Silber etc)
u.s.w.

ausserdem ist es so, dass bei Ringen und Ketten jeweils zusätzliche Angaben gemacht werden müssen:

Für Ketten:

- Kettenlänge
- Kettendurchmesser

Für Ringe:

- Ringkopf (grösse)
- Ringschiene (grösse)

Mein erster Gedanke ist nun gewesen, dass ich alles in eine Tabelle schreibe, sprich dass alle Datenfelder in einer Tabelle sind:

Bestellnr, Serie, Schmuckart, Legierung, Kettenlänge, Kettendurchmesser, Ringkopf, Ringschiene

Und dann halt die entsprechenden Werte dieser Tabelle über das Formular zuordne. Hierbei wäre es natürlich so, dass bei einigen Datensätzen die Felder Kettenlänge, Kettendurchmesser, Ringkopf und Ringschiene NULL bleiben könnten - nämlich dann, wenn es sich nicht um einen Ring oder eine Kette handelt (hier bleiben 4 Felder auf Null) oder um eine Kette oder einen Ring handelt (hier bleiben jeweils 2 Felder leer).

Nun kam mir aber in den Sinn, dass es vielleicht aus diesem Grund unter Umständen besser wäre, die Daten, die sich auf die Ketten und auf die Ringe beziehen, in eine jeweils extra Tabelle zu schreiben und das ganze dann am Ende zu verknüpfen.

Das würde dann bedeuten, ich mache 3 Tabellen und weil ich weiss, dass das Ganze später über so eine Zuordnungstabelle verknüpft werden soll, gebe ich halt noch jeweils ne ID-Nummer hinzu (Bestellnr ist hierfür nicht geignet, weil nicht jedes Schmuckstück eine solche hat).

Tabelle 1: Haupttabelle
ID, Bestellnr, Serie, Schmuckart, Legierung

Tabelle 2: Kettentabelle
Kettenr, Kettenlänge, Kettendurchmesser

Tabelle 3: Ringtabelle
Ringnr, Ringkopf, Ringschiene

Soderle - nun weiss ich ehrlich gesagt nicht, ob das bis hierhin überhaupt richtig ist und ob das Ganze überhaupt Sinn macht... wie gesagt, mit diesen Verknüpfungen kann ich mich nicht so anfreunden.

Für mein Verständnis bräuchte man dann noch die 4. Tabelle zum verknüpfen. Aber wie soll das funktionieren?

Tabelle 4: Zuordnung

Code:
ID   Kettenr   Ringnr
1    1            NULL (es war ne Kette)
2     NULL     NULL (es war weder Kette noch Ring)
3     NULL     2       (es war ein Ring)
oder wie? oder was?

Also wie man sieht, hab ich eine Ahnung und bräuchte Hilfe ;(

Danke,

Patryn
Mit Zitat antworten
  #2 (permalink)  
Alt 26-08-2002, 16:58
goth
  Moderator
Links : Onlinestatus : goth ist offline
Registriert seit: Mar 2002
Ort: Erde
Beiträge: 7.279
goth ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Nein ... du brauchst keine 4. Tabelle. Die 2. und 3. Tabelle brauche nur 'nen Fremdschlüssen:

Haupttabelle:
ID, Bestellnr, Serie, Schmuckart, Legierung

Ketten:
ID, Kettenr, Kettenlänge, Kettendurchmesser

Ringe:
ID, Ringnr, Ringkopf, Ringschiene

Der Primärschlüssel der Tabellen Ketten und Ringe setzt sich aus der ID und der Kettenr respektive Ringnr zusammen.

Abfrage dann mit LEFT [OUTER] JOIN

SELECT *
FROM Haupttabelle AS h
LEFT JOIN Ketten AS k
ON h.ID=k.ID
LEFT JOIN Ringe AS r
ON h.ID=r.ID

Fetisch ...
__________________
carpe noctem

Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht!
Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung!
Mit Zitat antworten
  #3 (permalink)  
Alt 26-08-2002, 17:33
Patryn
 Newbie
Links : Onlinestatus : Patryn ist offline
Registriert seit: Aug 2002
Beiträge: 14
Patryn ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Sorry, aber das versteh ich nicht.

Was ist mit Fremdschüssel gemeint? Wozu brauch ich denn jetzt nochmal ne ID für die Ketten- und Ringtabelle - dafür hab ich doch extra die beiden Felder Kettennr und Ringnr eingeführt.

Zitat:
Der Primärschlüssel der Tabellen Ketten und Ringe setzt sich aus der ID und der Kettenr respektive Ringnr zusammen.
Und das kapier ich leider auch nicht...

Patryn
Mit Zitat antworten
  #4 (permalink)  
Alt 26-08-2002, 19:00
goth
  Moderator
Links : Onlinestatus : goth ist offline
Registriert seit: Mar 2002
Ort: Erde
Beiträge: 7.279
goth ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Die Tabellen haben einen zusammengesetzten Primärschlüssel aus ID und Kettenr bzw. aus ID und Ringnr.

Btw.: Der Primärschlüssel Identifiziert einen Datensatz eindeutig.

Du kannst allerdings auch Kettenr oder Ringnr alleine als Primärschlüssel verwenden ... wichtig ist der Fremdschlüssel ID der auf den Datensatz in der Haupttabelle verweist.

Von der Kardinalität her ist das halt eine 1:1 (1:0) Beziehung dafür braucht man keine Verknüpfungstabellen ... .
__________________
carpe noctem

Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht!
Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung!
Mit Zitat antworten
Antwort

Lesezeichen


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

Themen-Optionen
Thema bewerten
Thema bewerten:

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.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

OnPremise versus Cloud - das richtige System finden
Wir beleuchten in diesem Artikel, die Vor- und Nachteile für Cloud oder OnPremise Systemen. Und warum es definitiv Zeit wird in die Cloud zu wechseln.

09.05.2022 | julia_mjr

Warum Texterstellung mit künstlicher Intelligenz richtig gut ist
Warum Texterstellung mit künstlicher Intelligenz richtig gut istKünstliche Intelligenz ist dabei, die Welt zu erobern. Die größten Unternehmen entwickeln Systeme, die einen Text für Sie schreiben können. Und sie machen das sehr gut.

05.01.2022 | Berni


 

Aktuelle PHP Scripte

ebiz-trader 6.0 - Das professionelle PHP Marktplatz Script ansehen ebiz-trader 6.0 - Das professionelle PHP Marktplatz Script

Mit unserer Lösungen können Sie nahezu jeden B2B / B2C Marktplatz betreiben den Sie sich vorstellen können. Ganz egal ob Sie einen Automarktplatz, Immobilenportal oder einfach einen Anzeigenmarkt betreiben möchten. Mit ebiz-trader können Sie Ihre Anforder

01.07.2022 Berni | Kategorie: PHP/ Anzeigenmarkt
NewsLetter Script PHP ansehen NewsLetter Script PHP

NewsLetter Script PHP is a simple email subscriptions newsletters script written in PHP and MySQL. Admin could send news in the letters to a mailing list of subscribed visitors. All the news and subscription form could be placed into a page of your web

28.06.2022 nevenov | Kategorie: PHP/ Mail
Contact Form PHP ansehen Contact Form PHP

Each website needs a contact form - Contact Form PHP script is very easy to install on your contacts page and administer.

27.06.2022 nevenov | Kategorie: PHP/ Formular
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 15:04 Uhr.