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
