Access - Clave Principal con más de diez campos

 
Vista:
sin imagen de perfil
Val: 38
Ha aumentado su posición en 2 puestos en Access (en relación al último mes)
Gráfica de Access

Clave Principal con más de diez campos

Publicado por Angel (113 intervenciones) el 18/09/2017 14:38:19
Hola a todos y gracias desde ya. Tengo el siguiente problema. En una tabla mi clave principal supera los 10 campos y Access 2010 no me permite poder crear dicha clave. Esta clave queda con 12 campos debido a integra otras claves con más de 1 campo como clave principal.
Pregunto:
¿Es posible crear una clave principal con más de diez campos?
¿Será que por tener una clave principal con más de diez campos hay fallas de diseño?
Quedo a la espera gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Antonio
Val: 485
Plata
Ha aumentado 1 puesto en Access (en relación al último mes)
Gráfica de Access

Clave Principal con más de diez campos

Publicado por Antonio (171 intervenciones) el 18/09/2017 16:30:18
Hola.

No podrás poner esa cantidad de numeros en un campo Int. Por que lo maximo que soporta es 2.147.483.647.

La solucion es cambiar tu clave principal de tipo Int a String osea (entero largo a texto)

Te dejo un documento para veas lo que te comento.

https://support.office.com/es-es/article/Insertar-crear-o-eliminar-un-campo-que-almacena-valores-num%C3%A9ricos-e29877e8-0246-4b8b-b089-6d77c732985a
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Clave Principal con más de diez campos

Publicado por Anonimo (3316 intervenciones) el 18/09/2017 21:52:36
Por diseño Access no admite mas de diez campos a la hora de crear un indice (y una clave principal no es mas que un indice, el mas importante eso si).

Sospecho que la causa no es otra que lo que supone de merma de velocidad, pues la insercion de un registro tendra que consultar y verificar que ese nuevo dato (esa combinacion de los diez campos utilizados como indice) no incumple ninguna de las normas o afecte a las relaciones.

Me temo que esa necesidad sale de un diseño que tendria que replantearse para no exigir ese numero de combinacion de datos para generar el indice unico.


Por cierto: el tipo de campos que intervengan (en ese conjunto de un maximo de diez) carece absolutamente de importancia tanto si son numericos como de texto (asumo que los de tipo Memo se han ignorado y descartado)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 38
Ha aumentado su posición en 2 puestos en Access (en relación al último mes)
Gráfica de Access

Clave Principal con más de diez campos

Publicado por Angel (113 intervenciones) el 19/09/2017 00:09:27
Anonimo muchas gracias por tu comentario. Cómo verás es lo que yo estaba suponiendo... ahora muy buena tu interpretación. Deberé resolver que sucede si no puedo formar una clave primaria con por ej. 9 campos, ya que los 11 me garantizan la no duplicidad. Será cuestión de resignar y controlar el ingreso por software externo al SGBD?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 38
Ha aumentado su posición en 2 puestos en Access (en relación al último mes)
Gráfica de Access

Clave Principal con más de diez campos

Publicado por Angel (113 intervenciones) el 19/09/2017 00:06:45
Hola Antonio, muchas gracias por tu comentario pero no creo que tenga que ver con los tipos de datos. Leí tu artículo de todos modos así sigo incorporando conocimientos. Hasta la próxima amigo!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Antonio
Val: 485
Plata
Ha aumentado 1 puesto en Access (en relación al último mes)
Gráfica de Access

Clave Principal con más de diez campos

Publicado por Antonio (171 intervenciones) el 19/09/2017 15:14:23
Son los tipos de datos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Samuel
Val: 62
Ha disminuido su posición en 3 puestos en Access (en relación al último mes)
Gráfica de Access

Clave Principal con más de diez campos

Publicado por Samuel (43 intervenciones) el 19/09/2017 18:30:46
Hola, soy programador experto en Access y VBA he desarrollado aplicaciones y bases de datos desde hace más de 10 años.

Definitivamente se trata de un mal diseño y concepto de base de datos ya que en una tabla lo correcto seria tener un solo campo como primary key. En muchas ocasiones he visto bases de datos con llaves primarias de dos, tres o mas campos, pero una ves que se hace un análisis cuidadoso de la base de datos se ha llegado a la conclusión de que el problema estaba en el diseño de la base de datos.

Lo que si es recomendable hacer es crear indices para garantizar la no duplicidad e integridad de los datos, y estoy de acuerdo con Ángel, el tipo de dato no tiene nada que ver con que Access te permita tener una llave primaria tan "perdón que lo diga de esta manera" absurda-mente grande.

Lo que te recomiendo es que te pongas a investigar sobre la normalizacion de bases de datos y las bases de datos relacionales, ademas de los conceptos básicos y fundamentales en el diseño de bases de datos. Para que te podamos ayudar de una mejor manera te recomiendo que compartas por lo menos el diseño de tu base de datos con al menos unos mil registros para que te orientemos al respecto.

Nota: Algunas de las aplicaciones que he desarrollado han sido:

Punto de venta.
Inventarios.
Control Documental.
Sistemas Contables.
Control de Consultorio Médico.
Recetario.
Control de gastos de Obra Civil.
Control de Radio Taxis.
Control de Redes Avon.
Control de producción y fabricación.
Etc.

Pueden contactarme a los teléfonos Cel. +55 (55) 62169107, 73148182
[email protected]; Web: http://accesssolutions-webnode.com.mx/

Servicios de consultoria y desarrollo a la medida.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 38
Ha aumentado su posición en 2 puestos en Access (en relación al último mes)
Gráfica de Access

Clave Principal con más de diez campos

Publicado por Angel (113 intervenciones) el 20/09/2017 00:58:41
Hola Samuel. He realizado el proceso de normalización con las formas normales. No estoy de acuerdo en que la clave principal sea un sólo campo. En más de diez libros que he leído de bases de datos dicen lo mismo "La clave principal es un campo o conjunto de campos..." Qué sólo uses un campo y luego índices nada tiene que ver con el concepto de Primary Key! Los índices son para optimizar búsquedas en aquellas tablas en las cuales hay muchos registros. En todos tus desarrollos o has tendido suerte que de no toparte con claves complejas o tienes fallas de diseño (Que es lo más probable). Los programadores por lo general no le dan importancia al diseño de la BD porque validan las entradas al programar los forms, pero nada tiene que ver con cumplir la teoría general de las bases de datos. Vengo diseñando desde hace mucho en Postgres y tal vez en la práctica de Access soy novato por eso he consultado que sucede cuando superas los 10 campos de una Primary key que en mi caso no responde a falla de diseño. En sistemas como lo que diseño tipo I2 de IBM las claves principales por lo general llevan más de un campo. Aclaro por alguien sigue este foro y se mal graba que las Primary Key son de un campo y que los índices son lo mismo. Ver: https://www.youtube.com/watch?v=CcRQXtrSkmc
Muchas gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Clave Principal con más de diez campos

Publicado por Anonimo (3316 intervenciones) el 20/09/2017 08:50:46
Una clave principal en teoría podría estar constituida por todos los campos de la tabla, si fuera necesario, solo se precisa que esa clave defina como 'único' a ese registro.

En Access (que no se debería perder de vista que es una 'base de datos de escritorio' eso si con mucho potencial) han limitado a diez por simple cuestión de rendimiento y no es más que una 'consecuencia matemática' en la que no voy a entrar aquí y ahora, a los que 'sepan de verdad' ya lo saben y a los que no lo saben.... seran mas felices si no tiene que ahondar en como funcionan las cosas.

Eso sí, felicitar a SAMUEL por sus colaboraciones (todos podemos aprender algo más, eso creo que forma parte del espíritu del foro), pero sería de agradecer que tomase nota de un par de detalles a mi forma de entender los foros:

.- Ya se ha presentado con su primer post, así que POR FAVOR CESA EN EL SPAM o así me parece la reiteración de ‘méritos’... no es el único que pulula por estos foros y cada uno con sus particulares méritos.

.- Dejar en paz los hilos que ya han finalizado hace dos, tres, cuatro.... o más años y que aqui no 'se cierran', no tiene sentido levantar muertos de sus tumbas para rezar un intrascendente 'padrenuestro más'. Sus autores después de ese tiempo ya no necesitaran esa respuesta por tardía y aquellos que puedan reutilizarla: posiblemente tengan versiones que no se ajusten o simplemente su versión no presente esos problemas.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 38
Ha aumentado su posición en 2 puestos en Access (en relación al último mes)
Gráfica de Access

Clave Principal con más de diez campos

Publicado por Anonimo (113 intervenciones) el 20/09/2017 21:51:25
Anonimo estoy de acuerdo contigo en que la limitación de diez campos es debido a operaciones algebraicas que debería realizar el SGBD. También estoy de acuerdo en el Spam y en tirarse títulos y logros no sirve de mucho. Yo aclaré lo que escribió Samuel porque entendí que atacaba un concepto fundamental "Primary Key" el cual a cualquier otro usuario que utiliza el foro para reforzar el estudio lo podía confundir. Muchas gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Samuel
Val: 62
Ha disminuido su posición en 3 puestos en Access (en relación al último mes)
Gráfica de Access

Clave Principal con más de diez campos

Publicado por Samuel (43 intervenciones) el 21/09/2017 19:52:08
Hola Angel.

Disculpa si te molesto la aportación que realice al foro y tal vez no me supe expresar. Efectivamente una llave primario podría ser compuesta por varios campos para hacer único un solo registro o tupla en la tabla. Pero el hecho de que se pueda hacer no es un indicativo de que sea lo mas aconsejable, NO QUIERO ENTRAR EN POLÉMICA ya que cada desarrollador, ing. arquitecto tiene su muy particular modo de ver e interpretar la cosas, pero lo mejor que podemos hacer es investigar al respecto cuando tenemos dudas y no necesariamente asele casa a uno solo u otro, ya que al fin y al cabo podemos hacer lo que queramos. Por citar un ejemplo, en una empresa en la que trabaje usaban tablas sin llaves primarias y sin indices y con redundancia de datos hasta morir y para esa empresa esa base de datos era la mejor del mundo por que satisfacía las necesidades que tenia, ademas de que sus programadores ya se habían acostumbrado a trabajar sobre ese paradigma de base de datos pero eso y las buenas practicas de programación no es lo mismo. En otra empresa que tenia un sistema ERP famoso lamado PeopleSoft relacionaban las tabla con más de 5 campos, estos mismos los usaban como PrimaryKey, y teníamos que migrar esa información a otra base de datos por medio de ETL, el cual normalizaba los datos y hacia que al caer en las nuevas tablas cayera de forma limpia y sin necesidad de usar varios campos como llave primaria, en ves de esto solo se utilizo un campo como PrimaryKey y para evitar la duplicidad de la información se creo un indice único compuesto con los 5 campos antes mencionado y esto permitía por un lado la localización rápidamente de dicho registro dentro de la tabla y al mismo tiempo impedía que dicho indice formado por los datos de esos 5 campos se volviera a repetir, esto permitió que la base de datos nueva disminuyera hasta un 50% de su tamaña original y que su rendimiento aumentará hasta un 100%

Aclaro que lo que indique en un mensaje anterior, no fue con el afán de entrar en polémica si no dar una ayuda a quien lo pidió y tienes tu la libertad de ignorarlo la respuesta que te compartí si tu consideras que no te es de utilidad.

De todos modos te felicito pos los logras que hayas tenido en tu carrera y espero que encuentres las respuestas que deseas en este u otros foros, Bye.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 38
Ha aumentado su posición en 2 puestos en Access (en relación al último mes)
Gráfica de Access

Clave Principal con más de diez campos

Publicado por Ángel (113 intervenciones) el 21/09/2017 22:40:34
Hola Samuel! Muy agradecido por tu aporte y te aseguro que saco mucho de positivo en tus aportes! Trabajo siempre en grupo y estoy acostumbrado a este intercambio de opiniones. Verás comparto todo lo que dices en este último mensaje. El diseño en el mundo real no condice con la teoría muchas veces pero si responde positivamente entonces se debe tomar como bueno! Me gustaría poder seguir en contacto contigo para seguir intercambiando conocimiento. Saludos colega!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar