Mysql
 sql >> Database >  >> RDS >> Mysql

Incremento automatico di MySQL tra le tabelle

Sembra che tu voglia differenziare categorie e argomenti in due tabelle separate, ma fare riferimento agli ID di entrambi in un'altra tabella likes per facilitare agli utenti il ​​gradimento di una categoria o di un argomento.

Quello che puoi fare è creare una tabella di super-entità con i sottotipi categories e topics . La chiave con incremento automatico verrebbe generata nella tabella delle superentità e inserita solo in una delle due tabelle di sottotipo (a seconda che si tratti di una categoria o di un argomento).

Le tabelle dei sottotipi fanno riferimento a questa superentità tramite il campo a incremento automatico in una relazione 1:1.

In questo modo, puoi semplicemente collegare la tabella delle super-entità ai likes tabella basata solo su una colonna (che può rappresentare una categoria o un argomento) e nessun id nelle sottotipi le tabelle saranno presenti in entrambi.

Ecco un esempio semplificato di come puoi modellarlo:

Questo modello ti permetterebbe di mantenere la relazione tra categorie e argomenti, ma avendo entrambe le entità generalizzate nella superentity tabella.

Un altro vantaggio di questo modello è che puoi estrarre i campi comuni nelle tabelle dei sottotipi nella tabella delle superentità. Supponiamo ad esempio che categories e topics entrambi contenevano i campi title e url :potresti inserire questi campi nella superentity tabella perché sono attributi comuni dei suoi sottotipi. Inserisci solo i campi specifici delle tabelle dei sottotipi nelle tabelle dei sottotipi.