Baumstruktur und Tabellen

LisaDuPoun

Benutzer
Beiträge
7
Hallo,

sorry, ich hoffe, dass meine Frage hier richtig ist. Ich bin nämlich ein Newbie und möchte mich entschuldigen, falls ich da in einem falschen Thread was schreib.

Ich beschäftige mich gerade mit Datenbanken und so. Dabei wollte ich so ein Kleid in einer Tabelle abbilden, doch weiß nicht, ob es richtig ist, nämlich:

.) 1.Beispiel:
Kleid
| | |
Grün Rot Blau
| | |
S S S
M M M
L L L

müsste es in einer Tabelle so aussehen?:

+ Tabelle Kleid:
Kleid|Attribut1|Attribut2

+ Tabelle Farbe Grün:
Grün|S|M|L
+ Tabelle Farbe Rot:
Rot|S|M|L
+ Tabelle Farbe Blau:
Blau|S|M|L

.) 2.Beispiel:
Kleid
| | |
Grün S Rot S Blau S
Grün M Rot M Blau M
Grün L Rot L Blau L

müsste es nun in einer Tabelle so aussehen?:

+ Tabelle Kleid:
Kleid|Farbe|Größe
Sonnenuntergang|Grün|S
Sonnenuntergang|Grün|M
Sonnenuntergang|Grün|L
Sonnenuntergang|Rot|S
Sonnenuntergang|Rot|M
Sonnenuntergang|Rot|L
Sonnenuntergang|Blau|S
Sonnenuntergang|Blau|M
Sonnenuntergang|Blau|L

Vielen Dank im Voraus für Eure Gedult und Unterstützung :oops:
Liebe Grüße
 
Werbung:
So ganz klar ist nicht, was Du willst. Vielleicht alle möglichen Kombinationen von Ware, Farbe und Größe?

Code:
test=*# select * from farben ;
 id | farbe
----+-------
  1 | rot
  2 | grün
  3 | blau
(3 rows)

Time: 0,286 ms
test=*# select * from groessen ;
 id | groesse
----+---------
  1 | S
  2 | M
  3 | L
(3 rows)

Time: 0,285 ms
test=*# select w.name, f.farbe, g.groesse from ware w cross join farben f cross join groessen g;
 name  | farbe | groesse
-------+-------+---------
 kleid | rot  | S
 kleid | rot  | M
 kleid | rot  | L
 kleid | grün  | S
 kleid | grün  | M
 kleid | grün  | L
 kleid | blau  | S
 kleid | blau  | M
 kleid | blau  | L
(9 rows)
 
Hallo,

Danke für deine Antwort.

Ich möchte diese Baumstrukturen in eine Tabelle bringen.

Ist das Beispiel von dir für das 1.Baum-Beispiel oder doch das 2.te?
 
Hallo,

sorry, dass ich erst jetzt zurückschreibe, aber ich war die ganze Zeit in der Schule.

Meine 2 Beispiele sollten die Baumstruktur wiedergeben, aber mit der Darstellung hat es wohl nicht ganz funktioniert...

.) 1.Baum-Beispiel:
Kleid
| | |
Grün Rot Blau
| | |
S S S
M M M
L L L

NB: Das Kleid gibs in Grün, Rot und Blau, wobei diese Farben wiederum in den Größen S, M und L existieren.

und

.) 2.Baum-Beispiel:
Kleid
| | |
Grün S Rot S Blau S
Grün M Rot M Blau M
Grün L Rot L Blau L

NB: Jetzt ist es so, dass das Kleid nur noch in Grün S, Grün M, Grün L, Rot S, Rot M, Rot L, usw. unterteilt wird, sprich es gibt keine "Zwischenebene" mit den Farben, sondern es wird direkt in Farb und Größe unterteilt.

Wie immer vielen Dank im Voraus für deine Hilfe.
Liebe Grüße
 
Ich sehe zwischen 1 und 2 eigentlich nur einen Unterschied: bei 2 steckst Du 2 Eigenschaften zusammen, Farbe und Größe. Dein eigentliches Problem/Frage versteh ich noch immer nicht. Mit 2 kannst Du aber schlecht suchen, zumindest, wenn in der tatsächlichen Speicherung das dann z.B. als Text erfolgt. Natürlich gibt es auch Dinge wiein PG mit JSONB, die das sauber (im Sinne von sinnvoll durchsuchbar) abbilden könnten.
 
Hallo,

meine Frage ist, wie ich diese zwei unterschiedliche Baumstrukturen in jeweils eine Tabelle abbilden kann. Wenn ich es mir tabellarisch aufzeigen möchte.

Da hab ich überhaupt nicht die Kenntnisse als Newbie/Schülerin.

Aber muss beim 2.Beispiel diese wirklich in Text abgebildet werden? Oder kann ich es nicht auch als eine Art "Kombi" machen?

PS: Was ist PG und JSONB?

Danke im Voraus.
Liebe Grüße
 
Achja, gibt es gute empfehlenswerte (deutschsprachige) Bücher für sowas (Datenbanken, etc.)? Oder welche Themen wären noch relevant, wenn ich mich damit weiterbeschäftigen möchte?

Aber bitte nur Bücher, welche wirklich gut für Newbies/Schülerinnen sind. Vielen Dank.

Ich interessiere mich sehr für soetwas, aber ich tue mir extrem schwer damit. Möchte es aber verstehennn... :p

Liebe Grüße
 
PG steht für PostgreSQL, JSONB ist ein Datentyp. Es gibt JSON als mittlerweile weit verbreitetetn Datentyp in der Web-Welt (Java Script Object Notation), was aber so erst einmal Text ist und schwer durchsuchbar. PostgreSQL kann solchen Text intern binär speichern und indexbasiert durchsuchen, das B in JSONB steht also für binär.

Nun beobachten wir das mal im Streichelzoo:

Code:
test=*# create table kleider(id int primary key, name text, eigenschaften jsonb);
CREATE TABLE
Time: 8,335 ms
test=*# insert into kleider values (1, 'Kleid 1', '{"Farbe":"rot", "Größe":"M"}');
INSERT 0 1
Time: 0,431 ms
test=*# insert into kleider values (2, 'Kleid 2', '{"Farbe":"blau", "Größe":"L"}');
INSERT 0 1
Time: 0,177 ms
test=*# create index kleider_farbe on kleider  ((eigenschaften ->> 'Farbe'));
CREATE INDEX
Time: 4,095 ms
test=*# set enable_seqscan to off;
SET
Time: 0,044 ms
test=*# explain select * from kleider where eigenschaften->>'Farbe' = 'rot';
  QUERY PLAN
------------------------------------------------------------------------------
 Index Scan using kleider_farbe on kleider  (cost=0.13..8.14 rows=1 width=68)
  Index Cond: ((eigenschaften ->> 'Farbe'::text) = 'rot'::text)
(2 rows)

Time: 0,472 ms

Du kannst also bei den Eigenschaften beliebige Felder definieren und auf Felder Deiner Wahl einen Index legen. Suchst Du nun Datensätze, die im Eigenschaften-Feld, welches JSONB ist, das Merkmal Farbe mit dem Wert rot haben kannst Du das Indexbasiert - und damit schnell - finden.
 
Hallo,

bin das Wochenende bei meiner Oma am Land gewesen. Und jetzt nach meinen Hausübungen hab ich wieder ein bisschen Zeit für meine Datenbankthemen ;)

Vielen Dank für deine Hilfen!

Nur leider glaube ich brauch ich da noch mehr Inputs. Ich versteh bis jetzt nur Bahnhof :oops:

Kennst du vielleicht gute und leicht verständliche (deutschsprachige) Bücher, etc. bezüglich Datenbanken und Co.? Wenn es englischsprachig sind auch okay, solange diese verständlich sind. Aber auf Deutsch ist es mir doch lieber.

Also wenn du mir diesbezüglich noch ein paar Tipps geben könntest?

Danke wie immer im Voraus!
Liebe Grüße
 
Zuletzt bearbeitet:
@akretschmer So sehr du deine JSON auch magst... Die ist hier leider fehl am Platz...
Vllt. erstmal die Grundlagen von relationalen Datenmodellen vermitteln, bevor man mit höheren Datentypen anfängt, die das ganze wieder total durcheinander werfen :)
 
@Distrilec depends: um z.B. verschiedene Artikel in einem Shop abzubilden, die alle unterschiedliche Eigenschaften haben, bist Du mit der 'reinen Lehre' recht schnell von einer Reihe von Problemen umgeben. Aber ich geb Dir Recht: man sollte in der Tat erst einmal das Grundkonzept verstanden haben.
 
Hallo,

danke :)

Aber wäre diese Konferenz nicht auch schon zu hoch für eine wie mich (eine Newbie)?

Anscheinend gibt es keine Bücher, die geeignet sind für Newbies? :(

Ich will die Hoffnung aber noch nicht aufgeben. Die Hoffnung stirbt doch zuletzt. :oops:
 
Werbung:
Aber wäre diese Konferenz nicht auch schon zu hoch für eine wie mich (eine Newbie)?

Steile Lernkurve? Was ist daran schlimm? ;-)

Ich hab das vorhin schon woanders hier gesagt: einfach machen. Einfach versuchen, sich in anderer Leute Probleme reinzudenken.

Ich hab füher z.B. gern auf Varlena, LLC | PostgreSQL General Bits Newsletter geschmöckert, leider hat Elain keine Lust mehr, das weiterzubetreiben (auch auf mehrfache Bitte hin nicht ...), aber es gibt genug Ressourcen im großen Internet, wo man sich austoben kann. U.a. hier in diesem Forum.
 
Zurück
Oben