Hi! Ich habe mich gerade in die Doku von postgreSQL eingelesen und will nun meine Buecher in die Datenbank hineingeben, nur weiss ich nicht genau wie ich die DB anlegen soll. Die Daten die ich drinnen haben will sind: Serie, Titel, Author, Verlag Ich habe nun das Problem, dass eine Serie zw. 1 und 50 Titel haben kann, aber bei jeder Serie immer Author und Verlag gleich bleiben. Ich habe 3 mehr oder wenig gleich schlechte Moeglichkeiten in Betracht gezogen: 1. Tabelle A mit Serie und Titel, Tabelle B mit Serie, Author, Verlag Der Nachteil waere, dass in Tabelle A bei jedem Titel zwangs- weise auch die Serie mitgespeichert wird. 2. Nur eine Tabelle mit Serie, Titel, Author, Verlag wobei die Spalte "Titel" ein Array ist. In der Doku steht jedoch, dass Arrays meist auf schlechtes Datenbankdesign hindeutet, und besser auf eine eigene Tabelle gesplittet werden sollte. 3. Eine Tabelle mit Serie, Author, Verlag, und dann noch fuer jede Serie eine eigene Tabelle wo nur die Titel enthalten sind. Das wuerde aber sehr viele Tabellen zur Folge haben und wahr- scheinlich ist das auch ein sehr schlechtes Design. Welche Loesung ist denn die Beste, bzw habe ich vielleicht eine Moeglichkeit uebersehen? Bin fuer jeden Hinweis dankbar. -- mfg Martin Neuditschko
Moin,
* Martin Neuditschko
Ich habe mich gerade in die Doku von postgreSQL eingelesen und will nun meine Buecher in die Datenbank hineingeben, nur weiss ich nicht genau wie ich die DB anlegen soll. Die Daten die ich drinnen haben will sind: Serie, Titel, Author, Verlag
Welche Loesung ist denn die Beste, bzw habe ich vielleicht eine Moeglichkeit uebersehen? Mein Vorschlag: Tabelle A mit Titel, ISBN, etc, Tabelle B mit Serie, Tabelle C mit Autor, Tabelle D mit Verlag.
Auf diese Weise hast Du alles sauber getrennt. Du mußt für jedes Buch nur die Serie angeben, für jede Serie Verlag und Autor, alles andere ergibt sich von selbst. Thorsten -- Politik kann man in diesem Lande definieren als die Durchsetzung wirtschaftlicher Zwecke mit Hilfe der Gesetzgebung. - Kurt Tucholsky
On Sun, Jun 02, 2002 at 12:02:21PM +0200, Thorsten Haude wrote:
Moin,
* Martin Neuditschko
[02-05-30 19:03]: Ich habe mich gerade in die Doku von postgreSQL eingelesen und will nun meine Buecher in die Datenbank hineingeben, nur weiss ich nicht genau wie ich die DB anlegen soll. Die Daten die ich drinnen haben will sind: Serie, Titel, Author, Verlag
Welche Loesung ist denn die Beste, bzw habe ich vielleicht eine Moeglichkeit uebersehen? Mein Vorschlag: Tabelle A mit Titel, ISBN, etc, Tabelle B mit Serie, Tabelle C mit Autor, Tabelle D mit Verlag.
Auf diese Weise hast Du alles sauber getrennt. Du mußt für jedes Buch nur die Serie angeben, für jede Serie Verlag und Autor, alles andere ergibt sich von selbst.
Das verstehe ich nicht ganz. Wenn ich die Tabellen so anlege: CREATE TABLE Titel { Titel text }; CREATE TABLE Serie { Serie text }; CREATE TABLE Autor { Autor text }; CREATE TABLE Verlag { Verlag text }; dann weiss ich ja nicht was zusammen gehoert. Es wuerde zwar mit "INHERITS" funktionieren, aber dann haette ich ja auch viel zu viel doppelt. mfg Martin Neuditschko
Moin, * Martin Neuditschko[02-06-02 17:01]: >On Sun, Jun 02, 2002 at 12:02:21PM +0200, Thorsten Haude wrote: >> * Martin Neuditschko [02-05-30 19:03]: >> >Ich habe mich gerade in die Doku von postgreSQL eingelesen und >> >will nun meine Buecher in die Datenbank hineingeben, nur weiss >> >ich nicht genau wie ich die DB anlegen soll. >> >Die Daten die ich drinnen haben will sind: >> >Serie, Titel, Author, Verlag >> >> >Welche Loesung ist denn die Beste, bzw habe ich vielleicht eine >> >Moeglichkeit uebersehen? >> Mein Vorschlag: >> Tabelle A mit Titel, ISBN, etc, >> Tabelle B mit Serie, >> Tabelle C mit Autor, >> Tabelle D mit Verlag. >> >> Auf diese Weise hast Du alles sauber getrennt. Du mußt für jedes Buch >> nur die Serie angeben, für jede Serie Verlag und Autor, alles andere >> ergibt sich von selbst. >Das verstehe ich nicht ganz. Wenn ich die Tabellen so anlege: >CREATE TABLE Titel { Titel text }; >CREATE TABLE Serie { Serie text }; >CREATE TABLE Autor { Autor text }; >CREATE TABLE Verlag { Verlag text }; >dann weiss ich ja nicht was zusammen gehoert. >Es wuerde zwar mit "INHERITS" funktionieren, aber dann haette ich >ja auch viel zu viel doppelt. Die einzelnen Tabellen brauchen natürlich noch die entsprechenden Fremdschlüssel wie um Text unten beschrieben, zum Beispiel: - - - Schnipp - - - create table Titel { Titel text, Serie_ID integer references Serie } - - - Schnapp - - - Außerdem fehlen noch Primärschlüssel und vermutlich einiges andere. Du solltest definitiv Deine Grundlagenkenntnisse aufbessern. Thorsten -- You're not supposed to be so blind with patriotism that you can't face reality. Wrong is wrong, no matter who does it or who says it. - Malcolm X
participants (2)
-
Martin Neuditschko
-
Thorsten Haude