Datenbank modell ob das richtig ist?

Hallo,

ich versuche eine Datenbank zu modellieren. Sie soll Bücher deren Kosten bei der Herstellung oder Ortabhängigkeit speichern.

Ich habe die Tabelle Bücher {ID, ISBN, Titel, KostenItem}
dann habe ich eine Tabelle BücherAttribute{Author, Verlag, BücherID}

KostenItem definiert global welche Kosten ein Buch definiert.

Die Tabelle Bücher und BücherAttribute haben 1:n.

Es können also auch mehrfach Author, Verlag füe in Buch gespeichert werden, weil sie davon abhängig verschieden viel kosten.

Tabelle Attribute_Kosten_A {BücherAttributeID, KostenAID)

m:n beziehung zu BücherAttribute und KostenA

Tabelle KostenA{ID, Ausführung, Typ}

nun England_KostenA(ID, Produktionkosten, Materialkosten, Zollkosten, KostenAID}
und Amerika_KostenA{ID, Produktionkosten, Produktionkosten, Zollkosten, KostenAID} und zu guter letzt Europa_KostenA{ID, Produktionkosten, Produktionkosten, Zollkosten, KostenAID}

Tabelle Attribute_Kosten_B {BücherAttributeID, KostenBID)

m:n beziehung zu BücherAttribute und KostenB

dann Tabelle Kosten_B{ID, Typ}

nun England_KostenB(ID, Produktionkosten, Materialkosten, Zollkosten, KostenBID}
und Amerika_KostenB{ID, Produktionkosten, Produktionkosten, Zollkosten, KostenBID} und zu guter letzt Europa_KostenB{ID, Produktionkosten, Produktionkosten, Zollkosten, KostenBID}

Ich finde mein Modell irgendwie seltsam???

Bitte um Verbesserungsvorschläge.

Gruß
Franky

Hallo Frank,

Ich habe die Tabelle Bücher {ID, ISBN, Titel, KostenItem}
dann habe ich eine Tabelle BücherAttribute{Author, Verlag,
BücherID}

da ein Buch i.d.R. nur von einem Autor geschrieben wird, würde ich den Autor zum Buch speichern. Die ID würde ich näher beschreiben:

Tabelle Bücher
{ID_Buch, ISBN, Titel, Autor…}

Tabelle BücherAttribute
{ID_Attribute, Verlag, …}

Tabelle Attribute_Kosten_A {BücherAttributeID, KostenAID)
m:n beziehung zu BücherAttribute und KostenA
Tabelle KostenA{ID, Ausführung, Typ}

wo sind da denn die Kosten? Ausführung, Typ gehören doch mit in die Attribute!?

nun England_KostenA(ID, Produktionkosten, Materialkosten,
Zollkosten, KostenAID}
und Amerika_KostenA{ID, Produktionkosten, Produktionkosten,
Zollkosten, KostenAID} und zu guter letzt Europa_KostenA{ID,
Produktionkosten, Produktionkosten, Zollkosten, KostenAID}

nö, so würde ich das nicht machen! erstelle EINE Tabelle:
ID, LAND, Produktionkosten, Materialkosten,Zollkosten, KostenAID}

Tabelle Attribute_Kosten_B {BücherAttributeID, KostenBID)
m:n beziehung zu BücherAttribute und KostenB

?? sehe da nicht den Zusammenhang?

dann Tabelle Kosten_B{ID, Typ}
nun England_KostenB(ID, Produktionkosten, Materialkosten,
Zollkosten, KostenBID}
und Amerika_KostenB{ID, Produktionkosten, Produktionkosten,
Zollkosten, KostenBID} und zu guter letzt Europa_KostenB{ID,
Produktionkosten, Produktionkosten, Zollkosten, KostenBID}

auch hier wieder das Land in EINER Tabelle mit aufnehmen. Nie eine Tabelle pro Land definieren, da du dann immer wieder neue Tabellen hinzufügen musst, wenn ein Land hinzukommt.

Ich finde mein Modell irgendwie seltsam???

ja, du solltest dir wirklich überlegen, was kommt nur einmal pro Buch vor, das dann in die Tabelle Buch übernehmen. Kosten pro Land immer in eine Tabelle speichern, und das Land mmit aufnehmen.

Grüße aus Raben Steinfeld (bei Schwerin)
Wolfgang
(Netwolf)

Danke für die Antwort, ich brauche aber nur drei (ja ok max vier Länder zu berücksichtigen), daran ändert sich nix.
Aber ich werde mal ein Modell erstellen in dem ich dann die Länder als Feld (text(50)) mit reinbringe und dadurch nur eine Tabelle habe.
Allerdings muß ich dann aber auch diese als m:n Beziehung an die Varianten packen. Sobald ich das fertig und Probleme damit habe, melde ich mich nochmal.

Gruß
Frank

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]