Este foro ya no está activo, así que no puedes publicar nuevas preguntas ni responder a las preguntas existentes.

Doctrine MYSQL relación OneToMany-Bidireccional a varias tablas según un campo

14 de abril de 2016

Buenas tengo un inconveniente el cual le vengo dando vueltas y no logro encontrar la solución, espero que alguien pueda ayudarme.

Requiero realizar un pequeño modulo el cual no se realmente cuánto puede crecer en campos, con lo cual leyendo vi que se puede ocupar el el concepto de modelo EAV (Entidad, atributo, valor).

Demas está mencionar que acepto críticas constructivas, recomendaciones, consejos, todo es bienvenido y mas teniendo en cuenta que soy algo nuevo en este rubro.

Ideas

  • No se si con doctrine se puede aplicar una condicion para que segun dado type realice tal o cual join
  • No se si es mejor realizar el join desde el controlador.
  • Desconozco el comportamiento de performance que puede provocar este este esquema, tener en cuenta que va a tener varios miles de datos en algun momento.
  • El tema de transpolar o convertir de filas a columnas, lo resuelvo de la siguiente manera. (acepto recomendaciones) ver ejemplo

Mis entidades serian las siguientes.

1. Entity Fields

id Atributo type
1 Nombre string
2 Socio integer
3 Nacimiento DateTime
n n Atributo types

2. Entity Historico

id idUnico idFields idValue
1 1 1 1
2 1 2 1
3 1 3 1
4 2 1 2
5 2 2 2
6 2 3 2

3. Entity Historico_String

id idHistorico Value
1 1 Pedro
2 4 Sofia

4. Entity Historico_Integer

id idHistorico Value
1 2 11111
2 5 22222

5. Entity Historico_Integer

id idHistorico Value
1 3 11/11/1980
2 6 01/01/1990

RESULTADO

y necesitaría obtener lo siguiente

IdUnico Nombre Socio Nacimiento
1 Pedro 11111 11/11/1980
2 Sofia 22222 01/01/1990

Espero puedan ayudarme Desde ya muchas gracias. !!! Maximo


Respuestas

#1

Hola @MaximoAximo,

No me queda muy claro que pretendes hacer exactamente, si vas a manejar muchos datos en tus tablas no se si has contemplado la posibilidad de usar una BD noSQL.

Me gustaría ayudarte si no has resuelto tu problema.

@miguelplazasr

21 abril 2016, 7:27