Domanda

Ho lo schema di un database in Symfony come questo:

Persona:
    actAs: { Timestampable: ~ }
    columns:
      primer_nombre:  { type: string(255), notnull: true }
      segundo_nombre: { type: string(255) }
      apellido:   { type: string(255), notnull: true }
      rut:         { type: string(255) }
      email:       { type: string(255) }
      email2:      { type: string(255) } 
      direccion:     { type: string(400) }
      ciudad:        { type: string(255) }
      region:      { type: string(255) }
      pais:     { type: string(255) }
      telefono:       { type: string(255) }
      telefono2:      { type: string(255) }
      fecha_nacimiento:   { type: date }

Alumno:
 inheritance:
    type:          concrete
    extends:       Persona
 columns:
  comentario:  { type: string(255) }
  estado_pago: { type: string(255) }

Alumno_Beca:
 columns:
  persona_id:   { type: integer, primary: true }
  beca_id: { type: integer, primary: true }
 relations:
  Alumno: { onDelete: CASCADE, local: persona_id, foreign: id } 
  Beca: { onDelete: CASCADE, local: beca_id, foreign: id } 

Beca:
 columns:
  nombre:        { type: string(255) }
  monto:      { type: double }
  porcentaje:  { type: double }
  descripcion: { type: string(5000) }

Come si può vedere, "alumno" è una concreta eredità da "persona".Ora sto cercando di creare dispositivi per questa due tabelle, e non posso farne una Dottrina, a carico loro.Mi da questo errore:

SQLSTATE[23000]:Vincolo di integrità violazione:1452 Possibile aggiungere o aggiornare un bambino riga:un vincolo di chiave esterna non riesce (eat/alumno__beca, Di VINCOLO alumno__beca_persona_id_alumno_id FOREIGN KEY (persona_id) RIFERIMENTI alumno (id) ON DELETE CASCADE)

Qualcuno sa come scrivere un apparecchio per una tabella ereditato da un altro?

Grazie!

È stato utile?

Soluzione

Non sono sicuro se questo è il vostro unico problema, ma quando carico le attrezzature per le tabelle che hanno relazioni, carico individualmente in un ordine che non violano i loro vincoli foreign key:primo genitore, bambino...non tutto insieme.Un record figlio non può "legalmente" esistere senza il suo genitore, se sono state definite le relazioni in questo modo, altrimenti il vincolo non riesce.

Altri suggerimenti

Ho iniziato symfony in ultime settimane e ho problema oggi con questi ..

primo problema è che le chiavi esterne deve essere un numero intero. Non intero (3) .. non dovrebbe scrivere dimensione campi se si tratta di una chiave esterna. E anche il codice è corretto, questo è solo un info.

secondo problema è, è necessario rimuovere che gli indici di chiave esterna sulla vostra tabella di database. se è già stato creato, quando si inserisce di nuovo-SQL dà un errore.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top