Esta es my schema:
Código:
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?.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
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.