sql >> Databasteknik >  >> RDS >> Mysql

MySQL automatisk inkrement mellan tabeller

Det verkar som om du vill särskilja kategorier och ämnen i två separata tabeller, men låt id:n för båda refereras i en annan tabell likes för att underlätta för användare att gilla antingen en kategori eller ett ämne.

Det du kan göra är att skapa en superenhetstabell med undertyperna categories och topics . Den automatiskt inkrementerade nyckeln skulle genereras i superentitetstabellen och infogas i endast en av de två undertypstabellerna (baserat på om det är en kategori eller ett ämne).

Undertypstabellerna refererar till denna superentitet via det automatiskt inkrementerade fältet i en 1:1-relation.

På så sätt kan du helt enkelt länka superentitetstabellen till likes tabell bara baserad på en kolumn (som kan representera antingen en kategori eller ett ämne), och inget id i undertypstabellerna kommer att finnas i båda.

Här är ett förenklat exempel på hur du kan modellera detta:

Den här modellen skulle tillåta dig att upprätthålla relationen mellan kategorier och ämnen, men att ha båda enheterna generaliserade i superentity bord.

En annan fördel med denna modell är att du kan abstrahera ut vanliga fält i subtyptabellerna till superentitetstabellen. Säg till exempel att categories och topics båda innehöll fälten title och url :du kan lägga dessa fält i superentity tabell eftersom de är vanliga attribut för dess undertyper. Lägg bara fält som är specifika för undertypstabellerna I undertypstabellerna.



  1. Python + MySQLdb exekvering

  2. MySQL - Hur ökar man varchar-storleken på en befintlig kolumn i en databas utan att bryta befintliga data?

  3. Hur kan jag lägga till en sträng i ett befintligt fält i MySQL?

  4. Postgres triggerbaserad infogningsomdirigering utan att bryta RETURNING