@Santino, ammetto di averci capito poco, sono agli inizi con i DB mi serve un database che sia prima di tutto semplice da usare, e la generalizzazione sembrava soddisfare le mie esigenze 
Quello che faccio lo vedi qui, http://tecnomercatino.it/item/new
Seleziona come categoria processori [cpu] e cerca qualcosa in componenti, magari amd che ce n'è xD
Adesso ammetto che servirebbe aumentare le prestazioni del DB (che è lento di suo in quanto hostato a parte) ...
Questa è la mia attuale struttura del database:
Codice PHP:
CREATE TABLE `componenti` (
`ID` VARCHAR(4) NOT NULL COLLATE 'utf8_unicode_ci',
`anno` INT(4) NOT NULL,
`produttore` VARCHAR(30) NOT NULL COLLATE 'utf8_unicode_ci',
`nome` VARCHAR(40) NOT NULL COLLATE 'utf8_unicode_ci',
PRIMARY KEY (`ID`)
)
COLLATE='utf8_unicode_ci'
ENGINE=InnoDB;
CREATE TABLE `cpu_tab` (
`componenti_ID` VARCHAR(4) NOT NULL COLLATE 'utf8_unicode_ci',
`socket` VARCHAR(5) NOT NULL COLLATE 'utf8_unicode_ci',
`codename` VARCHAR(20) NOT NULL COLLATE 'utf8_unicode_ci',
`architettura` VARCHAR(3) NOT NULL COLLATE 'utf8_unicode_ci',
`clock` INT(4) UNSIGNED NOT NULL,
`bench` VARCHAR(15000) NULL DEFAULT NULL COLLATE 'utf8_unicode_ci',
`corenum` INT(2) NOT NULL,
`threadsnum` INT(2) NOT NULL,
`l2cache` VARCHAR(50) NULL DEFAULT NULL COLLATE 'utf8_unicode_ci',
`l3cache` VARCHAR(50) NULL DEFAULT NULL COLLATE 'utf8_unicode_ci',
`tdp` VARCHAR(10) NOT NULL COLLATE 'utf8_unicode_ci',
PRIMARY KEY (`componenti_ID`),
CONSTRAINT `FKcpu_tab` FOREIGN KEY (`componenti_ID`) REFERENCES `componenti` (`ID`) ON DELETE CASCADE
)
COLLATE='utf8_unicode_ci'
ENGINE=InnoDB;
CREATE TABLE `case_tab` (
`componenti_ID` VARCHAR(4) NOT NULL COLLATE 'utf8_unicode_ci',
`formato` VARCHAR(20) NOT NULL DEFAULT 'ATX' COLLATE 'utf8_unicode_ci',
`dimensioni` VARCHAR(30) NOT NULL COLLATE 'utf8_unicode_ci',
`powersupply` VARCHAR(30) NULL DEFAULT NULL COLLATE 'utf8_unicode_ci',
`oddslots` INT(2) NOT NULL,
`hddslots` INT(3) NOT NULL,
`mobo` VARCHAR(30) NOT NULL COLLATE 'utf8_unicode_ci',
`ACfront` VARCHAR(50) NULL DEFAULT NULL COLLATE 'utf8_unicode_ci',
`ACleft` VARCHAR(50) NULL DEFAULT NULL COLLATE 'utf8_unicode_ci',
`ACright` VARCHAR(50) NULL DEFAULT NULL COLLATE 'utf8_unicode_ci',
`ACtop` VARCHAR(50) NULL DEFAULT NULL COLLATE 'utf8_unicode_ci',
`ACbottom` VARCHAR(50) NULL DEFAULT NULL COLLATE 'utf8_unicode_ci',
`ACrear` VARCHAR(50) NULL DEFAULT NULL COLLATE 'utf8_unicode_ci',
`ACinside` VARCHAR(50) NULL DEFAULT NULL COLLATE 'utf8_unicode_ci',
`maxvgalenght` VARCHAR(5) NULL DEFAULT NULL COLLATE 'utf8_unicode_ci',
`maxcpuheight` VARCHAR(5) NULL DEFAULT NULL COLLATE 'utf8_unicode_ci',
PRIMARY KEY (`componenti_ID`),
CONSTRAINT `FKcase_tab` FOREIGN KEY (`componenti_ID`) REFERENCES `componenti` (`ID`) ON DELETE CASCADE
)
COLLATE='utf8_unicode_ci'
ENGINE=InnoDB;
Ho messo solo un paio di tabelle, ma la base è quella componenti a cui si riferiscono le altre .-.