Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Normalisierung

Begonnen von hoschi_jones, September 25, 2014, 14:24:08

⏪ vorheriges - nächstes ⏩

hoschi_jones

Hallo zusammen,

nachdem ich in einer "gewachsene" Datenbank nicht mehr durchblicke, plane ich eine Neue.

Da ich die alten Fehler (hier in erster Linie Dateninkosenstenz) nicht wiederholen möchte, habe ich mich über die Grundlagen und der Normalisierung informiert.

Ich möchte eine Datenbank bauen, in der ich verschiedene Produktgruppen und auch die entsprechenden Artikel mit den entsprechenden Herstellern "koppeln" möchte.

Da es aber vorkommt, dass ein Hersteller verschiedene Produktgruppen anbietet, habe ich überlegt, dass ich eigentlich erst einmal eine Adressdatenbank anlegen sollte, in der sämtliche Adressen, egal ob Hersteller, Lieferant und auch Kunde, abgelegt sind, aus der ich, je nach Kategorie, die Datenstämme für eben Hersteller der Produktgruppe, Kunde, Lieferant etc. herausnehmen kann, da ich ja ansonsten Felder mit gleichem Inhalt vergebe.

Ich habe im Anhang mal die Adresstabelle, eine Herstellertabelle und die Tabelle der Ansprechpartner angefügt.

Liege ich mit meiner Überlegung falsch oder kann ich die Struktur so weiter aufbauen?

database

Hallo,

erst mal ist es recht löblich, dass du dich vorab mal mit der Normalisierung beschäftigen willst.
Sieh dir dazu die Links #1 und #1a inder Signatur von DF6GL und #5 in meiner Signatur an.

Von deinem dargestellten Tabellen verwirfst du dann bitte gleich die Tabelle 'HerstellerTür'

Um Hersteller, Lieferanten und Kunden zu unterscheiden könntest du ein Flag-Feld (Integer) in der Adress-Tabelle führen,
und hier 1 für Lieferanten, 2 für Hersteller und 3 für einen Kunden eintragen.Um die Ansprechpersonen dem richtigen Datensatz der Adress-Tabelle zuzuordnen
benötigst du eine Zwischentabelle - z.B. tblAnsprechpersonenAdressen mit den Feldern

AsprechID_F (Long)
AdressID_F (Long)

Weiter eine Tabelle tblKategorien für ... Türen, Fenster, ...

KategorieID (Auto)
Kategorie (Text)

sowie die Zwischentabelle tblAdressenKategorie

AdressID_F (Long)
KategorieID_F (Long)

um einem Datensatz der Adress-Tabelle eine oder mehrere Kategorien zuzuordnen

Weiter eine tblArtikel

ArtikelID (Auto)
ArtikelBezeichnung (Text)
...
...

mit allen relevanten Attributen die du zur Beschreibung eines Artikel benötigst

sowie - richtig! die Zwischentabelle um einen Artikel der richtigen Kategorie zuzuordnen:

tblArtikelKategorie

ArtikelID_F (Long)
KategorieID_F (Long)

Soweit einmal mein grob umrissener Vorschlag ... nach deinen Angaben.

Wenn du dich dann näher und intensiver mit der Normalisierung beschäftigst, wirst du erkennen,
dass in der Adress-Tabelle einige Felder in egene Tabellen ausgelagert werden sollten ... unterschiedliche Orte können die gleiche PLZ haben, gleiche PLZ und Orte könenn in unterschiedlichen Tabellen vorkommen, ...

Was du aber auich in jedem Fall beachten solltest ist, KEINE Umlaute in Tabellen oder Spaltennamen, KEINE resrvierten Worte und KEINE Sonderzeichen
KEINE Eingabeformate in Tabellenfeldern definieren!

Naja, dann mach mal in der oben beschriebenen Form weiter - was noch alles dazukommen könnte kann ich aus deiner DB-Beschreibung nicht erraten