[Risolto]Salvare Chiavi Composte

Salve ragazzi , ho un problema nel salvare le chiavi composte

ho questa tabella:


CREATE TABLE IF NOT EXISTS `lavo_acce` (

  `lotto` varchar(20) CHARACTER SET utf8 NOT NULL,

  `lotti_usati` varchar(20) CHARACTER SET utf8 NOT NULL,

  `quantita` float(8,2) DEFAULT NULL,

  PRIMARY KEY (`lotto`,`lotti_usati`),

  KEY `lotti_usati` (`lotti_usati`)

) ENGINE=InnoDB DEFAULT CHARSET=latin1;


--

-- Limiti per le tabelle scaricate

--


--

-- Limiti per la tabella `lavo_acce`

--

ALTER TABLE `lavo_acce`

  ADD CONSTRAINT `FK_lotto_accettazione` FOREIGN KEY (`lotto`) REFERENCES `accettazione` (`lotto`) ON DELETE CASCADE ON UPDATE CASCADE,

  ADD CONSTRAINT `FK_lotto_lavorazione` FOREIGN KEY (`lotti_usati`) REFERENCES `lavorazione` (`lotto`) ON DELETE CASCADE ON UPDATE CASCADE;




ora vorrei salvare al suo interno e faccio cosi:




if(isset($_POST['lotti']))

		{

                    $model = new Lavorazione();

                    $model->nome_prodotto='prova';

                    $model->quantita = $_POST['quantita'];

                    $model->lotto = '55555';

                    

                    $model_lavoAcce = new LavoAcce();

                    

                    var_dump($_POST['lotti']);

                    

                    if($model->save()){

                     

                        foreach ($_POST['lotti'] as $lotti){

                        

                        $model_lavoAcce->lotto = $model->lotto;

                        $model_lavoAcce->lotti_usati = $lotti[1];

                        $model_lavoAcce->quantita = $lotti[2];

                        

                        $model_lavoAcce->save();

                      }



ma mi da errore di :


CDbCommand ha riportato un errore nell'esecuzione della query SQL: SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails

Quindi di chiavi , ma non so propio come risolverlo è la prima volta

Probabilmente hai invertito gli id, cmq yii fa un po’ fatica con le chiavi composte, meglio aggiungere un campo int 11 primary key auto increment, ti risparmia un sacco di fastidi.

Grazie zaccaria ho fatto cosi alla fine , ho perso già troppo tempo

Non farti prendere da scrupoli teorici, una colonna autoincrement in piu’ non ha nessun effetto pratico ne’ a livello prestazioni ne’ a livello di spazio su disco.

Una volta seguendo quello che ci hanno insegnato all’uni ho usato il codice fiscale come chiave primaria, mai piu’!

Risparmia tempo in fase di progettazione, se ti serve il model, ti serve la chiave autoincrement.

Grazie mille :D