
Hector Esau
Pregunta¿Hay algún beneficio en usar las dos columnas como primary key en la tabla transitiva posts_etiquetas?

Hector Esau
O si lo ha hecho muchisimas gracias

Enrique Gamboa
Oh ya veo... Primero que nada, solo para aclarar, las tablas transitivas contienen dos FOREIGN KEYS (FK) pertenecientes a las tablas de las que hace referencia. Si bien estas FK son PRIMARY KEYS (PK) en sus respectivas tablas, al momento de crear la tabla transitiva pasan a usarse como FK dentro de la tabla transitiva, pues recordemos que no se puede tener más de una primary key en la misma tabla. Entonces solo tenemos dos opciones: dejar la tabla transitiva sin PK o crearle una PK propia.
Pero estoy seguro que esto ya lo sabías. Creo que tu confusión vino de algo que dijo el profesor que te hizo entender que se podían usar esas dos foreign keys como si fuesen primary keys de la tabla transitiva . La verdad es que no es correcta esta afirmación, pues si bien estas dos FK no se deberían repetir, estas no están funcionando como PK. Y esto lo puedes comprobar si intentas llamar directamente a un solo registro de la tabla transitiva, no puedes hacerlo directamente sin condicionar el query. Al final solo tenemos las dos opciones que te señale más arriba: tener una tabla transitiva sin PK o crearle su propia PK
La ventaja que yo le encuentro a usar tablas transitivas con primary key es poder acceder fácilmente a los resultados. Imagina lo siguiente: Tienes una base de datos para vender tus productos con las tablas usuarios y productos, y quieres saber qué es lo que ha comprado cada usuario junto con otros datos como la fecha en que lo compró y la cantidad. Para eso necesitarás crear una tabla N:M con los id de las tablas usuarios y productos pero a su vez quieres mantener un registro de las ventas. Para eso serviría crear un identificador (PK) para la tabla.
quizá este no sea el mejor ejemplo de tabla transitiva pero sí es un caso de uso que se le da a las primary keys de tablas N:M. Recordemos que las tablas transitivas no son más que tablas N:M.
Espero que esto de alguna manera haya respondido tu duda.

Hector Esau
No me refiero a tener dos primary key, sino que menciono que podiamos generar la primary key de dos maneras, una era crear el id de autoincremento y la otra era usar las dos filas como primary key ya que no se iban a repetir ¿Cuáles son las desventajas y ventajas de hacer esto?

Enrique Gamboa
No se pueden tener dos primary key en una misma tabla. Lo que sí es posible es tener más de una clave foránea, que fue lo que hizo el maestro.

Hector Esau
Si, pero menciona el maestro que se podría hacer de esa manera y esa es miu duda ¿Cuál es la diferencia de hacer una primary key de una y otra manera?

Melsar Otoniel Andrade Castillo
Hola. En la tabla transitiva posts_etiquetas solo usa una PRIMARY KEY, las otras dos son FOREIGN KEYS de los id de la tabla posts y etiquetas respectivamente. Es necesario aclarar que NO pueden haber 2 PRIMARY KEY en una misma tabla.