Ik ben mij aan het inlezen over normalisatie en probeer nu het programma mysql workbench uit.
Op de Nederlandse pagina's krijg je veel verwijzingen naar het database ontwerp van Yapf en soms kom je een artikel op deze website tegen.
Op basis hiervan heb ik even een opzetje gemaakt( welke uiteraard niet af is), hieronder de code zoals ik hem terug krijg van het programma:
-- MySQL Script generated by MySQL Workbench
-- 01/12/15 15:13:48
-- Model: New Model Version: 1.0
-- MySQL Workbench Forward Engineering
SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0;
SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;
SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='TRADITIONAL,ALLOW_INVALID_DATES';
-- -----------------------------------------------------
-- Schema mydb
-- -----------------------------------------------------
-- -----------------------------------------------------
-- Schema mydb
-- -----------------------------------------------------
CREATE SCHEMA IF NOT EXISTS `mydb` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci ;
USE `mydb` ;
-- -----------------------------------------------------
-- Table `mydb`.`postcodes`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `mydb`.`postcodes` ;
CREATE TABLE IF NOT EXISTS `mydb`.`postcodes` (
`postcodeID` INT NOT NULL,
`postcode` VARCHAR(45) NOT NULL,
`straatnaam` VARCHAR(45) NOT NULL,
`plaats` VARCHAR(45) NOT NULL,
PRIMARY KEY (`postcodeID`))
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `mydb`.`adressen`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `mydb`.`adressen` ;
CREATE TABLE IF NOT EXISTS `mydb`.`adressen` (
`adresID` INT NOT NULL,
`postcodeID` INT NOT NULL,
PRIMARY KEY (`adresID`),
CONSTRAINT `postcodeID`
FOREIGN KEY (`postcodeID`)
REFERENCES `mydb`.`postcodes` (`postcodeID`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `mydb`.`klanten`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `mydb`.`klanten` ;
CREATE TABLE IF NOT EXISTS `mydb`.`klanten` (
`klantID` INT NOT NULL AUTO_INCREMENT,
`voornaam` VARCHAR(45) NOT NULL,
`tussenvoegsel` VARCHAR(45) NOT NULL,
`achternaam` VARCHAR(45) NOT NULL,
`adresID` INT NOT NULL,
`huisnummer` VARCHAR(45) NOT NULL,
`huisnummer_toevoeging` VARCHAR(45) NOT NULL,
PRIMARY KEY (`klantID`),
INDEX `adresID_idx` (`adresID` ASC),
CONSTRAINT `adresID`
FOREIGN KEY (`adresID`)
REFERENCES `mydb`.`adressen` (`adresID`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `mydb`.`artikelen`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `mydb`.`artikelen` ;
CREATE TABLE IF NOT EXISTS `mydb`.`artikelen` (
`artikelID` INT NOT NULL AUTO_INCREMENT,
`artikelnaam` VARCHAR(45) NOT NULL,
PRIMARY KEY (`artikelID`))
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `mydb`.`orders`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `mydb`.`orders` ;
CREATE TABLE IF NOT EXISTS `mydb`.`orders` (
`orderID` INT NOT NULL AUTO_INCREMENT,
`artikelID` INT NOT NULL,
`klantID` INT NOT NULL,
`aantal` DECIMAL(10,0) NOT NULL,
`prijs` DECIMAL(5,2) NOT NULL,
PRIMARY KEY (`orderID`),
INDEX `klantenID_idx` (`klantID` ASC),
INDEX `artikelID_idx` (`artikelID` ASC),
CONSTRAINT `klantenID`
FOREIGN KEY (`klantID`)
REFERENCES `mydb`.`klanten` (`klantID`)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `artikelID`
FOREIGN KEY (`artikelID`)
REFERENCES `mydb`.`artikelen` (`artikelID`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
SET SQL_MODE=@OLD_SQL_MODE;
SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;
Dit geeft mij de volgende diagram:

Ik weet dat het niet geoptimaliseerd is, maar ik ben niet bekend met de kleurtjes en kraaienpootjes en op YAPF missen er afbeeldingen.
Ik zou denken dat ik goed op weg ben, kan er iemand een blik op werken?
ps: varchar 45 is een standaard waarde in de workbench, het gaat mij om het diagram en de opzet er van.