sql >> Base de Datos >  >> RDS >> Mysql

Incremento automático de MySQL entre tablas

Parece que desea diferenciar categorías y temas en dos tablas separadas, pero hacer que las identificaciones de ambos estén referenciadas en otra tabla likes para facilitar que a los usuarios les guste una categoría o un tema.

Lo que puedes hacer es crear una tabla de superentidad con subtipos categories y topics . La clave de incremento automático se generaría en la tabla de superentidad y se insertaría solo en una de las dos tablas de subtipo (según si se trata de una categoría o un tema).

Las tablas de subtipos hacen referencia a esta superentidad a través del campo de incremento automático en una relación 1:1.

De esta manera, simplemente puede vincular la tabla de superentidad a los likes tabla basada solo en una columna (que puede representar una categoría o un tema), y sin id en las tablas de subtipos estará presente en ambos.

Aquí hay un ejemplo simplificado de cómo puedes modelar esto:

Este modelo te permitiría mantener la relación entre categorías y temas, pero teniendo ambas entidades generalizadas en la superentity mesa.

Otra ventaja de este modelo es que puede abstraer campos comunes en las tablas de subtipos en la tabla de superentidad. Digamos, por ejemplo, que categories y topics ambos contenían los campos title y url :podría poner estos campos en la superentity tabla porque son atributos comunes de sus subtipos. Solo coloque campos que sean específicos de las tablas de subtipos EN las tablas de subtipos.