Ik ben bezig met het maken van een website met MySQL. Ik heb als eerste genormaliseert en hierna de de tabellen in Access gezet.

In Access ziet het er als volgd uit:
Table: Klanten, Orders, Orders_objecten, Objecten.

Klanten
Klant_id primaire sleutel Autonummering. (1 op meer relatie 00)

Orders
Order_id primaire sleutel Autonummering (1 op meer relatie 00)
Klant_id numeriek

Orders_objecten
Order_id Nummeriek primaire sleutel
Object_id Nummeriek primaire sleutel

Objecten
Object_id primaire sleutel Autonummering (1 op meer relatie 00)

Nu heb ik een export gedaan van Access naar MySQL.

1. Ik krijg dan een paar meldingen de eerste is:
PRIMARY and INDEX keys should not both be set for klanten_id.

2. Verder zie ik dat in de tabel Orders_objecten deze geen twee Primair sleutel bevat is dit trouwens wel mogelijk zo ja hoe?

3. Ben wel een newbie dus hopelijk kunnen jullie mij op weg helpen al vast bedankt.

Hier de export bestand van Access naar Mysql zit hier ergens een probleem inverband met bovenstaande meldingen:

CREATE TABLE `klanten` (
`achternaam` CHAR(50),
`adres` CHAR(50),
`email` CHAR(50),
`faxnummer` INT,
`klant_id` INT NOT NULL AUTO_INCREMENT,
`land` CHAR(50),
`mobielnummer` INT,
`naam` CHAR(50),
`postcode` CHAR(50),
`provincie` CHAR(50),
`telefoonnummer` INT,

mySQLTimeStamp TIMESTAMP,
PRIMARY KEY ( `klant_id` ), KEY ( `klant_id` ), KEY ( `postcode` )
);

INSERT INTO `klanten` (`klant_id`, `naam`, `achternaam`, `adres`, `postcode`, `provincie`, `land`, `telefoonnummer`, `mobielnummer`, `faxnummer`, `email`)
VALUES (
1,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
0,
0,
NULL,
'[email protected]'
);

ALTER TABLE `klanten` CHANGE `faxnummer` `faxnummer` INT NOT NULL DEFAULT 0;
ALTER TABLE `klanten` CHANGE `mobielnummer` `mobielnummer` INT NOT NULL DEFAULT 0;
ALTER TABLE `klanten` CHANGE `telefoonnummer` `telefoonnummer` INT NOT NULL DEFAULT 0;


CREATE TABLE `objecten` (
`object_id` INT NOT NULL AUTO_INCREMENT,
`omschrijving` CHAR(50),

mySQLTimeStamp TIMESTAMP,
PRIMARY KEY ( `object_id` ), KEY ( `object_id` )
);



CREATE TABLE `order_objecten` (
`aantalpersonen` INT,
`bedrag` CHAR(50),
`datum_tot` DATETIME,
`datum_van` DATETIME,
`huisdier` TINYINT,
`lakens` CHAR(50),
`object_id` INT,
`order_id` INT,

mySQLTimeStamp TIMESTAMP,
KEY ( `object_id` ), KEY ( `object_id` ), KEY ( `object_id` ), KEY ( `order_id` ), KEY ( `order_id` )
);

ALTER TABLE `order_objecten` CHANGE `aantalpersonen` `aantalpersonen` INT NOT NULL DEFAULT 0;
ALTER TABLE `order_objecten` CHANGE `object_id` `object_id` INT NOT NULL DEFAULT 0;
ALTER TABLE `order_objecten` CHANGE `order_id` `order_id` INT NOT NULL DEFAULT 0;


CREATE TABLE `orders` (
`aanbetaald` DECIMAL(20,4),
`boekings_datum` DATETIME,
`klant_id` INT,
`order_id` INT NOT NULL AUTO_INCREMENT,
`totaalbedrag` DECIMAL(20,4),

mySQLTimeStamp TIMESTAMP,
PRIMARY KEY ( `order_id` ), KEY ( `klant_id` ), KEY ( `klant_id` ), KEY ( `order_id` )
);

ALTER TABLE `orders` CHANGE `aanbetaald` `aanbetaald` DECIMAL(20,4) NOT NULL DEFAULT 0;
ALTER TABLE `orders` CHANGE `klant_id` `klant_id` INT NOT NULL DEFAULT 0;
ALTER TABLE `orders` CHANGE `totaalbedrag` `totaalbedrag` DECIMAL(20,4) NOT NULL DEFAULT 0;

Mvg

Samme
misschien is omzetten naar csv en dan in mysql zelf sleutels gaan aangeven minder gevoelig voor fouten? dit is een gedachte sprongetje ik ben ook geen database wizzerd
Bedankt voor je reactie Bart van der Veen,

De Access db bevat nog geen data maar ik ben al begonnen met de hand wat wijzingen in de tabel te maken: Doe even een export:

-- Database: `woningen`
--

-- --------------------------------------------------------

--
-- Table structure for table `klanten`
--

CREATE TABLE `klanten` (
`achternaam` char(50) default NULL,
`adres` char(50) default NULL,
`email` char(50) default NULL,
`faxnummer` int(11) NOT NULL default '0',
`klant_id` int(11) NOT NULL auto_increment,
`land` char(50) default NULL,
`mobielnummer` int(11) NOT NULL default '0',
`naam` char(50) default NULL,
`postcode` char(50) default NULL,
`provincie` char(50) default NULL,
`telefoonnummer` int(11) NOT NULL default '0',
`mySQLTimeStamp` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
PRIMARY KEY (`klant_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;

--
-- Dumping data for table `klanten`
--

INSERT INTO `klanten` VALUES (NULL, NULL, '[email protected]', 0, 1, NULL, 0, NULL, NULL, NULL, 0, '2006-10-04 07:08:22');

-- --------------------------------------------------------

--
-- Table structure for table `objecten`
--

CREATE TABLE `objecten` (
`object_id` int(11) NOT NULL auto_increment,
`omschrijving` char(50) default NULL,
`mySQLTimeStamp` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
PRIMARY KEY (`object_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

--
-- Dumping data for table `objecten`
--


-- --------------------------------------------------------

--
-- Table structure for table `order_objecten`
--

CREATE TABLE `order_objecten` (
`aantalpersonen` int(11) NOT NULL default '0',
`bedrag` char(50) default NULL,
`datum_tot` datetime default NULL,
`datum_van` datetime default NULL,
`huisdier` tinyint(4) default NULL,
`lakens` char(50) default NULL,
`object_id` int(11) NOT NULL default '0',
`order_id` int(11) NOT NULL default '0',
`mySQLTimeStamp` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
KEY `order_id` (`order_id`),
KEY `object_id` (`object_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

--
-- Dumping data for table `order_objecten`
--


-- --------------------------------------------------------

--
-- Table structure for table `orders`
--

CREATE TABLE `orders` (
`aanbetaald` decimal(20,4) NOT NULL default '0.0000',
`boekings_datum` datetime default NULL,
`klant_id` int(11) NOT NULL default '0',
`order_id` int(11) NOT NULL auto_increment,
`totaalbedrag` decimal(20,4) NOT NULL default '0.0000',
`mySQLTimeStamp` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
PRIMARY KEY (`order_id`),
KEY `klant_id` (`klant_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

--
-- Dumping data for table `orders`
--
Ik heb volgende gedaan weet niet of de Primaire sleutels nog goed zijn zie hierboven:
Als dit goed is dan nog alleen de vraag hoe krijg ik in de tabel Orders_objecten twee Primair sleutel?

Mvg
Samme
@samme, gebruik even de zoekfunctie van het forum, in een paar nog niet al te oude topics stond de naam van een programma dat je hiervoor kunt gebruiken.

Reageren