Suite du post:
Schéma des tables:
CREATE TABLE IF NOT EXISTS periode
(
ID_Periode INT UNSIGNED NOT NULL AUTO_INCREMENT,
An YEAR NULL,
Mois TINYINT NULL,
Trimestre TINYINT NULL,
Semestre TINYINT NULL,
PRIMARY KEY (ID_Periode)
)ENGINE = INNODB;
CREATE TABLE IF NOT EXISTS famille_produit
(
ID_Famille TINYINT UNSIGNED NOT NULL AUTO_INCREMENT,
Nom_Famille VARCHAR (30) NULL,
PRIMARY KEY (ID_Famille)
)ENGINE = INNODB;
CREATE TABLE IF NOT EXISTS produit
(
ID_Produit TINYINT UNSIGNED NOT NULL AUTO_INCREMENT,
Nom_Produit VARCHAR (30) NULL,
ID_Famille TINYINT UNSIGNED NULL,
PRIMARY KEY (ID_Produit, ID_Famille),
CONSTRAINT FK_Produit_Famille FOREIGN KEY (ID_Famille) REFERENCES famille_produit (ID_Famille)
)ENGINE = INNODB;
CREATE TABLE IF NOT EXISTS sous_produit
(
ID_Sous_Produit SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT,
Nom_Sous_Produit VARCHAR (30) NULL,
ID_Famille TINYINT UNSIGNED NULL,
ID_Produit TINYINT UNSIGNED NULL,
PRIMARY KEY (ID_Sous_Produit, ID_Famille, ID_Produit),
CONSTRAINT FK_Famille_Sous_Produit FOREIGN KEY (ID_Famille) REFERENCES produit (ID_Famille),
CONSTRAINT FK_Produit_Sous_Produit FOREIGN KEY (ID_Produit) REFERENCES produit (ID_Produit)
)ENGINE = INNODB;
create table sous_produit_detail
(
ID_Sous_Produit_Detail SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT,
Nom_Sous_Produit_Detail VARCHAR (30) NULL,
ID_Famille TINYINT UNSIGNED NULL,
ID_Produit TINYINT UNSIGNED NULL,
ID_Sous_Produit SMALLINT UNSIGNED NULL,
PRIMARY KEY (ID_Sous_Produit_Detail, ID_Famille, ID_Produit, ID_Sous_Produit),
CONSTRAINT FK_Sous_Produit_Detail_Famille FOREIGN KEY (ID_Famille) REFERENCES sous_produit (ID_Famille),
CONSTRAINT FK_Sous_Produit_Detail_Produit FOREIGN KEY (ID_Produit) REFERENCES sous_produit (ID_Produit),
CONSTRAINT FK_Sous_Produit_Detail_Sous_Produit FOREIGN KEY (ID_Sous_Produit) REFERENCES sous_produit (ID_Sous_Produit)
)ENGINE = INNODB;
CREATE TABLE IF NOT EXISTS unites
(
ID_Unite TINYINT UNSIGNED NOT NULL AUTO_INCREMENT,
Nom_Unite VARCHAR (30) NULL,
Commentaire VARCHAR (254) NULL,
ID_Produit TINYINT UNSIGNED NULL,
ID_Sous_Produit SMALLINT UNSIGNED NULL,
ID_Sous_Produit_Detail SMALLINT UNSIGNED NULL,
PRIMARY KEY (ID_Unite),
CONSTRAINT FK_Unite_Produit FOREIGN KEY (ID_Produit) REFERENCES Produit (ID_Produit),
CONSTRAINT FK_Unite_Sous_Produit FOREIGN KEY (ID_Sous_Produit) REFERENCES Sous_Produit (ID_Sous_Produit),
CONSTRAINT FK_Unite_Sous_Produit_Detail FOREIGN KEY (ID_Sous_Produit_Detail) REFERENCES sous_produit_detail (ID_Sous_Produit_Detail)
)ENGINE = INNODB;
CREATE TABLE IF NOT EXISTS vente
(
ID_Vente BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
Volume FLOAT NULL,
Prix FLOAT NULL,
CA FLOAT NULL,
CA_Dinars FLOAT NULL,
ID_Famille TINYINT UNSIGNED NULL,
ID_Produit TINYINT UNSIGNED NULL,
ID_Periode INT UNSIGNED NULL,
ID_Unite TINYINT UNSIGNED NULL,
ID_Marche TINYINT UNSIGNED NULL,
PRIMARY KEY (ID_Vente),
CONSTRAINT FK_Vente_Famille FOREIGN KEY (ID_Famille) REFERENCES produit (ID_Famille),
CONSTRAINT FK_Vente_Produit FOREIGN KEY (ID_Produit) REFERENCES produit (ID_Produit),
CONSTRAINT FK_Vente_Periode FOREIGN KEY (ID_Periode) REFERENCES periode (ID_Periode),
CONSTRAINT FK_Vente_Unite FOREIGN KEY (ID_Unite) REFERENCES unites (ID_Unite),
Constraint FK_Vente_Marche FOREIGN KEY (ID_Marche) REFERENCES marche (ID_Marche)
)ENGINE = INNODB;
CREATE TABLE IF NOT EXISTS vente_detail
(
ID_Vente_detail BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
Volume FLOAT NULL,
Prix FLOAT NULL,
CA FLOAT NULL,
CA_Dinars FLOAT NULL,
ID_Sous_Produit SMALLINT UNSIGNED NULL,
ID_Periode INT UNSIGNED NULL,
ID_Unite TINYINT UNSIGNED NULL,
ID_Marche TINYINT UNSIGNED NULL,
PRIMARY KEY (ID_Vente_Detail),
CONSTRAINT FK_Vente_Sous_Produit FOREIGN KEY (ID_Sous_Produit) REFERENCES sous_produit (ID_Sous_Produit),
CONSTRAINT FK_Vente_Detail_Periode FOREIGN KEY (ID_Periode) REFERENCES periode (ID_Periode),
CONSTRAINT FK_Vente_Detail_Unite FOREIGN KEY (ID_Unite) REFERENCES unites (ID_Unite),
Constraint FK_Vente_Detail_Marche FOREIGN KEY (ID_Marche) REFERENCES marche (ID_Marche)
)ENGINE = INNODB;
CREATE TABLE IF NOT EXISTS vente_sous_detail
(
ID_Vente_Sous_Detail BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
Volume FLOAT NULL,
Prix FLOAT NULL,
CA FLOAT NULL,
CA_Dinars FLOAT NULL,
ID_Sous_Produit_Detail SMALLINT UNSIGNED NULL,
ID_Periode INT UNSIGNED NULL,
ID_Unite TINYINT UNSIGNED NULL,
ID_Marche TINYINT UNSIGNED NULL,
PRIMARY KEY (ID_Vente_Sous_Detail),
CONSTRAINT FK_Vente_Sous_Produit_Detail FOREIGN KEY (ID_Sous_Produit_Detail) REFERENCES sous_produit_detail (ID_Sous_Produit_Detail),
CONSTRAINT FK_Vente_Sous_Detail_Periode FOREIGN KEY (ID_Periode) REFERENCES periode (ID_Periode),
CONSTRAINT FK_Vente_Sous_Detail_Unite FOREIGN KEY (ID_Unite) REFERENCES unites (ID_Unite),
Constraint FK_Vente_Sous_Detail_Marche FOREIGN KEY (ID_Marche) REFERENCES marche (ID_Marche)
)ENGINE = INNODB;