Foros del Web » Programando para Internet » PHP » Frameworks y PHP orientado a objetos »

Primer proyecto con Doctrine, tengo un par de dudas con my schema y DQL

Estas en el tema de Primer proyecto con Doctrine, tengo un par de dudas con my schema y DQL en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Hola, estoy armando my primer proyecto "real" con Doctrine y Zend Framework I bueno, engo una db schema funcional en el sentido de que puedo ...
  #1 (permalink)  
Antiguo 17/04/2009, 22:20
 
Fecha de Ingreso: julio-2008
Mensajes: 83
Antigüedad: 16 años, 5 meses
Puntos: 6
Primer proyecto con Doctrine, tengo un par de dudas con my schema y DQL

Hola, estoy armando my primer proyecto "real" con Doctrine y Zend Framework I bueno, engo una db schema funcional en el sentido de que puedo contruir los models y las tablas a partir de la misma, pero no estoy seguro sobre el rendimiento de mi diseño particularmente; tambien tengo una duda sobre una query DQL especifica.

Esta es my schema:
Código:
connection: OctoRealm
actAs: [Timestampable]
options:
  type: INNODB
  collate: utf8_unicode_ci
  charset: utf8

Account:
  columns:
    login:
      type: string(255)
      notnull: true
      unique: true
    password:
      type: string(41)
      notnull: true
    is_root:
      type: boolean
      notnull: true
    is_service:
      type: boolean
      notnull: true

Contact:
  columns:
    first_name:
      type: string(255)
      notnull: true
    last_name:
      type: string(255)
      notnull: true
    birth_date:
      type: timestamp
      notnull: true
    account_id:
      type: integer
      notnull: true
  relations:
    Account:
      type: one
      foreignType: one

Email:
  columns:
    address:
      type: string(255)
      notnull: true
      unique: true
      email: true
    main:
      type: boolean
      notnull: true
    contact_id: integer
  relations:
    Contact:
      type: one
      foreignType: many
      foreignAlias: Emails

Address:
  columns:
    name:
      type: string(255)
      notnull: true
    area:
      type: string(255)
      notnull: true
    city:
      type: string(255)
      notnull: true
    street_first:
      type: string(255)
      notnull: true
    street_second:
      type: string(255)
      notnull: true
    main:
      type: boolean
      notnull: true
    type:
      type: enum
      values: [home, work, other]
    contact_id: integer
    country_id: integer
  relations:
    Contact:
      type: one
      foreignType: many
      foreignAlias: Addresses
    Country:
      type: one
      foreignType: many
      foreignAlias: Addresses

Country:
  columns:
    name:
      type: string(255)
      notnull: true

Phonenumber:
  columns:
    country_code:
      type: string(6)
      notnull: true
    area_code:
      type: string(10)
      notnull: true
    number:
      type: string(15)
      notnull: true
    main:
      type: boolean
      notnull: true
    address_id: integer
  relations:
    Address:
      type: one
      foreignType: many
      foreignAlias: Phonenumbers
Cada Account puede ser una cuenta "service", en caso de no ser, esta tendra asociada un objecto Contact, con el nombre, edad, direcciones, emails y numeros telefonicos de la persona que posee la cuenta en question. Entonces, me gustaria saber que opinan de mi diseño, mas que nada en rendimiento. Otra cosa, que tendria que cambiar para poder acceder los Phonenumbers, Emails y Addresses desde Account, sin pasar por Contact(y/o Address segun el caso), a modo de evitar SELECTs innecesarios?.

Respecto a la pregunta de DQL, con el diseño actual, como podria hacer un SELECT a todos los Phonenumber(o Emails) contenidos en una Account particular. Cada Account tiene un Contact, que a su vez tiene varios Address, que a su vez tienen varios Phonenumber. Esto sin hacer un SELECT a todos los objectos que toman parte(Contact, Addresses).

Gracias de antemano.

Un saludo.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:13.