Article View: es.comp.bd.misc
Article #155Claves primarias simples en lugar de compuestas
From: Ricardo Palomares Martinez
Date: Fri, 16 Feb 2007 21:54
Date: Fri, 16 Feb 2007 21:54
51 lines
3232 bytes
3232 bytes
Saludos: Hace mucho que estudié sobre bases de datos, claves primarias, claves externas, etc. Me dejé pendiente el Proyecto de Fin de Carrera y ahora me toca, y tengo que diseñar un esquema de base de datos para una aplicación Java. Mientras leía documentación de Hibernate (aunque al final no voy a usar Hibernate), me pareció leer que recomiendan no definir una clave primaria compuesta por varios campos de la tabla, y lo hacen como una práctica recomendable para un buen diseño de base de datos, no como un requisito de Hibernate. En su lugar, sugieren crear una clave principal simple "sintética", como un entero con auto-incremento. http://www.hibernate.org/hib_docs/v3/reference/en/html/collections.html#collections-idbag Por otro lado, tengo el libro Base de Datos con Java, que tiene un capítulo dedicado al diseño de modelos de bases de datos, y hace alguna referencia a las claves compuestas sin indicar que sean malas "per se". Entiendo que las claves primarias "sintéticas" son más livianas de mantener por el RDBMS, pero mi modelo (para una aplicación de ayuda a la traducción) está lleno de relaciones padre-hijo (un [equipo de traducción de un] idioma traduce productos, un producto tiene versiones, una versión tiene ficheros, un fichero tiene cadenas), de manera que una fila de la tabla de cadenas se identificaría por la concatenación de todas las claves primarias de los respectivos padres, pero a la vez todas esas columnas me aportan información de la cadena. Si sustituyo la clave primaria de la tabla "productos", que sería l10nCode + prodCode, por una clave "sintética", de manera que los campos l10nCode y prodCode de la tabla "productos" tengan índices normales no únicos (y así con cada tabla, claro), me da la sensación de que en la tabla "cadenas" el número de índices se dispararía. ¿Realmente debo procurar definir claves primarias simples en todas mis tablas, o lo he entendido mal? Si es así, ¿conocéis alguna referencia donde pueda informarme mejor y ver qué efectos tiene y cómo se pueden solventar los posibles inconvenientes? Muchas gracias por anticipado. -- If it's true that we are here to help others, then what exactly are the OTHERS here for?
Technical Details
Message-ID:
<bplha4-03a.ln1@Father.family>Path:
arc1-ca.pugleaf.net!g2news2.google.com!news1.google.com!newsfeed.gamma.ru!Gamma.RU!newsfeed.icl.net!newsfeed.fjserv.net!newsfeed.icl.net!newsfeed.freenet.de!news.newsland.it!aioe.org!Father.family!newsShow Full Headers
Complete Article Headers
X-Google-Thread: 106e2f,a285ffcbbf2f23a9,start X-Google-Attributes: gid106e2f,public X-Google-Language: SPANISH,ASCII Path: arc1-ca.pugleaf.net!g2news2.google.com!news1.google.com!newsfeed.gamma.ru!Gamma.RU!newsfeed.icl.net!newsfeed.fjserv.net!newsfeed.icl.net!newsfeed.freenet.de!news.newsland.it!aioe.org!Father.family!news From: Ricardo Palomares Martinez <rpm.PUBLI@iespana.es> Newsgroups: es.comp.bd.misc Subject: Claves primarias simples en lugar de compuestas Date: Fri, 16 Feb 2007 22:54:19 +0100 Organization: Hogar, dulce hogar Lines: 51 Message-ID: <bplha4-03a.ln1@Father.family> NNTP-Posting-Host: ZpXS4kufLSNv31vt9Lrapw.user.aioe.org Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-15 Content-Transfer-Encoding: quoted-printable X-Complaints-To: abuse@aioe.org User-Agent: Mozilla/5.0 (X11; U; Linux i686; es-ES; rv:1.8.1.2pre) Gecko/20070111 SeaMonkey/1.1 Mnenhy/0.7.4.0