Buscando consejos de diseño de modelos de Core Data

Tengo el siguiente problema de modelado en Core Data. Un estudiante puede tomar lecciones. Una lección tiene los siguientes campos:

título fecha tipo de calificación

Una lección puede ser de tres tipos:

Lessontype1:

subtipo11 subtipo12 subtipo13

Lessontype2:

subtipo21 subtipo22 subtipo23 subtipo24

Lessontype3:

 subtipo31 subtipo32 subtipo33 subtipo34 subtipo35

¿Cómo configuro el lesson.type a alguno de estos tres tipos de lecciones? ¿Existe una mejor manera de modelar este escenario?

preguntado el 16 de mayo de 11 a las 19:05

¿Los tipos y subtipos son clases? ¿O son solo un indicador? ¿Qué más depende del tipo? -

@Nick Weaver Sí, los tipos de lecciones son clases, los subtipos son campos. Si el tipo de lección cambia la forma en que se muestran y se agregan cambios. -

1 Respuestas

Los detalles de su modelo dependen de los detalles de los datos que está modelando.

Si los tipos son solo marcadores que no tienen lógica o comportamiento asociado, entonces el modelo más simple sería:

Student{
    lessons<-->>Lesson.student
}

Lesson{
    title:string
    date:date
    grade:number
    type:string
    subtype:string
    student<<-->Student.lessons
}

Si las lecciones tienen algún tipo de comportamiento asociado con cada tipo, entonces puede crear subentidades para cada tipo de lección.

Lesson{
    title:string
    date:date
    grade:number
    student<<-->Student.lessons
}

TypeOne:Lesson{

}

TypeOneSubOne:TypeOne{

}

// ...etc

Dado que todas las subentidades de Lesson heredan de Lesson, también pueden heredar la relación. Todas las diferentes subentidades pueden estar en el Student.lesson relación.

Si los tipos de lecciones tienen comportamientos asociados con ellos, también puede dividirlos en entidades separadas.

Lesson{
    title:string
    date:date
    grade:number
    type<<-->Type.lessons
    student<<-->Student.lessons
}

Type{
    lessons<-->>Lesson.type
}

TypeOne:Type{

}

TypeOneSubOne:TypeOne{

}

Un modelo de datos básicos está destinado a simular objetos, eventos o condiciones del mundo real y las relaciones entre ellos. El primer paso para diseñar un modelo es comprender esas cosas del mundo real y las relaciones entre ellas.

contestado el 17 de mayo de 11 a las 18:05

Creo que la tercera solución es la más elegante. Pero iré con el primero, debido a su naturaleza simple y bajo costo de clases. - Diana

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.