En ese ejemplo ya estas viendo por que no esta tan bueno. T3 tiene una clave
primaria compuesta por 3 campos!, imaginate si en algún lado tenes que
guardar una relación a T3, y fuera parte de su clave primaria. Necesitarías
4 campos.... se empieza a poner negro. Otra cosa mala que tienen las claves
compuestas es que tienden a tener significado en el dominio, y toda cosa con
significado en el dominio es susceptible a cambios.

Al ya estar utilizando GUID, guid es buena como POID.

Hay mucha información al respecto dando vuelta sobre este tema, lo oficial
que te puedo indicar es la documentación de nhibernate:
http://nhforge.org/doc/nh/en/index.html#mapping-declaration-compositeid

El "por que no es tan bueno" oficial esta aca:
http://www.agiledata.org/essays/keys.html

<http://www.agiledata.org/essays/keys.html>


El 28 de diciembre de 2009 16:07, Claudiño <[email protected]>escribió:

> Hola a todos
>
> Estoy desarrollando un sistema en donde tengo algo parecido a lo
> siguiente
>
> T1
> ---------------
> PKT1
> DescT1
>
> T2
> ---------------
> PKT1
> PKT2
> DescT2
>
> T3
> ---------------
> PKT1
> PKT2
> PKT3
> DescT3
>
> Los campos PKT1, PKT2 y PKT3 son generados con GUID
>
> Tengo el problema para definir la primary key, ya que de acuerdo a la
> documentación de NHibernate, al definir en la tabla T2 una clave
> compuesta por PKT1 y PKT2 y en la tabla T3 una clave compuesta por
> PKT1, PKT2 y PKT3 estaría utizando un esquema legacy, pero es como
> siempre he trabajado modelando bases de datos.
>
> La otra alternativa sería definir las siguientes claves
>
> T1 clave principal PKT1
> T2 clave principal PKT2
> T3 clave principal PKT3
>
> y como son GUID nunca se duplicarían, pero no es la forma en que esto
> acostumbrado a modelar las bases de datos
>
> Agradecería sus comentarios al respecto
>
> --
> Para escribir al Grupo, hágalo a esta dirección:
> [email protected]
> Para más, visite: http://groups.google.com/group/NHibernate-Hispano

-- 
Para escribir al Grupo, hágalo a esta dirección: 
[email protected]
Para más, visite: http://groups.google.com/group/NHibernate-Hispano

Responder a