Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Incremento automático do MySQL entre tabelas


Parece que você deseja diferenciar categorias e tópicos em duas tabelas separadas, mas fazer com que os ids de ambos sejam referenciados em outra tabela likes para facilitar que os usuários gostem de uma categoria ou de um tópico.

O que você pode fazer é criar uma tabela de superentidades com subtipos categories e topics . A chave auto-incrementada seria gerada na tabela de superentidades e inserida em apenas uma das duas tabelas de subtipo (com base em uma categoria ou um tópico).

As tabelas de subtipo fazem referência a essa superentidade por meio do campo incrementado automaticamente em um relacionamento 1:1.

Dessa forma, você pode simplesmente vincular a tabela de superentidades aos likes tabela apenas com base em uma coluna (que pode representar uma categoria ou um tópico) e sem id nas tabelas de subtipos estarão presentes em ambos.

Aqui está um exemplo simplificado de como você pode modelar isso:



Este modelo permitiria manter a relação entre categorias e tópicos, mas tendo ambas as entidades generalizadas na superentity tabela.

Outra vantagem desse modelo é que você pode abstrair campos comuns nas tabelas de subtipo na tabela de superentidade. Digamos, por exemplo, que categories e topics ambos continham os campos title e url :você pode colocar esses campos na superentity table porque são atributos comuns de seus subtipos. Coloque apenas os campos específicos das tabelas de subtipos nas tabelas de subtipos.