Paar opmerkingen, op de factuur staat de voorletter van de klant in een aparte cel.
Over voorvoegstels is in het voorbeeld niets te vinden, maar maak er maar 3 velden van, voornaam, voervoegsels, achternaam, ipv KlantNaam.
Normaal gesproken zou je ook nog iets van Dhr, Mevr, etc willen opnemen en gezien het voorbeeld gaat de verzending aan fietsenwinkels zou een plek voor de bedrijfsnaam ook wel logisch zijn geweest.
Dan 'Vertegenwoordiger', je hebt hem bij Orders staan, dat lijkt me geen logische plek.
Zelf zou ik 'Klanten' uitbreiden met een veld 'Soort' en 'Functie' en de naam 'Adres' geven.
Eigen personeel kan je zo ook gewoon in het 'Adres' bestand opnemen, echter met als soort 'Eigenpersoneel', klanten krijgen uiteraard 'Klant'. Ook leveranciers kunnen er dan in etc etc.
In het veld 'Functie' kan je de 'rol' kwijt van iedereen, o.a. 'Vertegenwoordiger'.
Straatnamen wil je ook maar één keer opslaan, gekoppeld aan de postcode.
Een klant, cq iemand in de tabel 'Adres' heeft dus alleen een postcode en huisnummer aan zich gekoppeld.
In een extra tabel staan de relaties tussen postcodes en staatnamen + woonplaats.
Niet in het voorbeeld, maar normaal gesproken wel handig is daar aan toe te voegen 'Land'
Dat is even wat ik zie.. maar je kijk snel over iets heen bij zulke dingen.
N.b. de drie (vier als je Postcode toevoegt) sleutel velden hoeven niet in een eigen tabel te staan hoor.
Sleutelvelden voer je niet opnieuw op, en hou je dus ook niet over.
Nog een aardige link m.b.t. 'Normaliseren'
http://www.phphulp.nl/php/tutorials/3/150/259/
Overigens normaliseren ze hier de postcode ook niet.
Bij grote DB's is dat echter wel aan te raden, vooral omdat je alle postcode mutaties dan veel sneller kan door voeren. En geloof me dat zijn er nog al wat in Nederland elke maand.