# OpenOffice Base - Datenbanküberlegung



## mein_name (16. Dezember 2010)

Hallo!

Ich möchte eine einfache Datenbank zur Verwaltung meiner CDs und Schallplatten basteln. Ich hab mir schon alles durchgedacht, doch leider bin ich jetzt an eine Grenze gestoßen.

Hier meine Tabellen:
===================
Tabelle "Platte"
===================
- ID
- Interpret
- Plattenname
- Medium
- Umfang
- Jahr
- Stück
- Titel1
- Titel2
- Titel3
- .....
===================

===================
Tabelle "Medium"
===================
- Medium
===================

===================
Tabelle "Umfang"
===================
- Umfang
===================

In der Tabelle Platte werden alle Daten zu einer Platte gespeichert. In der Tabelle Medium werden "LP", "CD" usw. gespeichert und in der Tabelle Umfang wird gespeichert ob das Medium eine Single, eine Longplay oder Demo ist.
Mein Problem beginnt jetzt mit den Titeln - eine Platte hat x Titel, die aber auf zwei Seiten sein können bzw. wenn mehrere Platten oder CDs in der Packung sind auch auf diesen sein können. Wie bekomm ich die Seiten bzw. die Platte in der Datenbank mitgespeichert?

Vielen Dank!

lg


----------



## Drogist (16. Dezember 2010)

Moin mein_name,

zugegeben, es ist wirklich nicht leicht, sich ein Ergebnis zu ergoogeln, wenn der passende Begriff fehlt. Ich kann die keine direkte Antwort geben, da ich "nur" in Access und anderen DBs zu Hause bin, aber das Prinzip ist auf jeden Fall gleich. Du musst eine weitere Tabelle "Titel" anlegen und über die (eindeutige) ID der Tabelle "Platte" die beiden Tabellen verbinden, verknüpfen.

Gebe mal bei einer Suchmaschine deiner Wahl "Open Office Base join verbinden" (bzw. ... verknüpfen) ein und schau dir die Ergebnisse an. Und las dich nicht durch das viele SQL verwirren, aber es sollte dich schon interessieren, denn auf Dauer gesehen wirst du nicht "ohne" auskommen


----------



## mein_name (5. Januar 2011)

Hallo!

Anbei seht ihr ein Bild von meiner Datenbankstruktur. Ich will eine Datenbank zur Verwaltung meiner Platten bauen.
Momentan hab ich es so gelöst, dass die Lieder in einer eigenen Tabelle ausgelagert sind, da ich ja auch Sampler habe 
und Lieder auf verschiedenen Platten verschiedener Interpreten sein kann.
Was haltet ihr davon?

Vielen Dank für eure Hilfe!

lg


----------



## vfl_freak (5. Januar 2011)

Moin,

sieht für mich auf den ersten Blick nicht schlecht aus

Wobei ich mich allerdings frage, warum Du *Umfang *und *Medium *noch extra raus normalisierst 
Jede Platte wird doch (vermutlich) nur auf einem bestimmten Medium vorkommen und der Umfang (Gesamtspieldauer ?) wird doch auch eindeutig sein!
Ich würde es nicht für hilfreich halten, wenn ich eine Spieldauer von xy Minuten erst über die ID 42 ermitteln muss!

Gruß
Klaus


----------



## mein_name (5. Januar 2011)

Vielen Dank für die schnelle Antwort.
Sorry war unübersichtlich von mir - Umfang sollte nur "Sampler", "Longplay" bzw. "Single/EP" enthalten - also nicht die Spieldauer!
Medium hab ich deswegen als extrige Tabelle, da ich Alben als Schallplatten sowie als CDs habe.
Wie erstelle ich aus den ganzen Tabellen jetzt ein einfaches Formular zur Eingabe der ebengenannten Daten? Wenn ich zB einen Interpreten eingebe, dann soll er ja checken ob ich diesen schon mal eingegeben habe. Doch er hat ja nur eine Nummer hinterlegt.
Oder mit den einzelnen Titeln - Theoretisch wird ja den Liedern eine Platte zugewiesen und nicht der Platte Titeln - Wie realisiere ich das?
Ich glaub ich denk gerade zu kompliziert   - Vielen Dank für eure Hilfe!


----------



## vfl_freak (5. Januar 2011)

Moin,



mein_name hat gesagt.:


> Sorry war unübersichtlich von mir - Umfang sollte nur "Sampler", "Longplay" bzw. "Single/EP" enthalten - also nicht die Spieldauer!
> Medium hab ich deswegen als extrige Tabelle, da ich Alben als Schallplatten sowie als CDs habe.


Ich halte diese Normalisierung trotzdem überflüssig, da sich in den Tabellen _Medium _und _Umfang_ ja immer nur EIN Datenfeld befindet. Ob Du also in der Tabelle _Platte_ Medium_ID = 1 (1 sei hier mal CD) schreibst, oder nur "1" (und dies dann als CD interpretierst) oder direkt "CD" ist doch eigentlich egal - außer dass Du im ersten Fall immer einen weiteren DB-Zugriff hast, um die ID aufzulösen...



mein_name hat gesagt.:


> Wie erstelle ich aus den ganzen Tabellen jetzt ein einfaches Formular zur Eingabe der ebengenannten Daten? Wenn ich zB einen Interpreten eingebe, dann soll er ja checken ob ich diesen schon mal eingegeben habe. Doch er hat ja nur eine Nummer hinterlegt.
> Oder mit den einzelnen Titeln - Theoretisch wird ja den Liedern eine Platte zugewiesen und nicht der Platte Titeln - Wie realisiere ich das?


Worauf zielt denn Dein Eingabeformular ab? _Lied _oder _Interpret_ oder beides ?
Wenn Du bei _Lied _eine _Interpret_ID_ eingibst, musst Du halt in der entspr. Tabelle prüfen, ob es eine gültige ID ist ...
Wenn Du bei _Interpret _eine ID angibst, dann prüfe ob sie existiert und zeige ggf. den Datensatz an oder ein Formular zur Neuanlage ...

Gruß
Klaus


----------

