سؤال

لدي مخطط قاعدة بيانات في symfony مثل هذا:

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) }

كما ترى ، "الخريجين" لديه ميراث ملموس من "persona". الآن أحاول إنشاء تركيبات لهذا الجدولين ، ولا يمكنني جعل العقيدة لتحميلها. يعطيني هذا الخطأ:

SQLSTATE [23000]: انتهاك قيود النزاهة: 1452 لا يمكن إضافة أو تحديث صف الطفل: فشل قيود المفاتيح الخارجية (eat/alumno__beca, ، قيد alumno__beca_persona_id_alumno_idمفتاح غريب (persona_id) المراجع alumno (id) على حذف تتالي)

هل يعرف أحدهم كيف يكتب لاعبا اساسيا لجدول ورثت من آخر؟

شكرًا!

هل كانت مفيدة؟

المحلول

لست متأكدًا مما إذا كانت هذه هي مشكلتك الوحيدة ، ولكن عند تحميل التركيبات للجداول التي لها علاقات ، قم بتحميلها بشكل فردي بترتيب لا ينتهك قيودهم الرئيسية الخارجية: الوالد الأول ، ثم الطفل ... ليس كل شيء معًا. لا يمكن أن يكون سجل الطفل "من الناحية القانونية" بدون والديه ، إذا كنت قد حددت علاقاتك بهذه الطريقة ، وإلا فإن القيد يفشل.

نصائح أخرى

لقد بدأت Symfony في الأسابيع الماضية ولدي مشكلة اليوم مع هذه ..

المشكلة الأولى هي ، يجب أن تكون مفاتيحك الأجنبية عددًا صحيحًا. ليس عدد صحيح (3) .. يجب ألا يكتب حجم الحقول إذا كان مفتاحًا خارجيًا. وأيضًا رمزك صحيح ، هذه مجرد معلومات.

المشكلة الثانية هي ، يجب عليك إزالة فهارس المفاتيح الخارجية على جدول قاعدة البيانات. إذا تم إنشاؤه بالفعل ، عند إدراج SQL مرة أخرى ، فإنه يعطي خطأ.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top