Det ser ud til, at du ønsker at skelne mellem kategorier og emner i to separate tabeller, men lad id'erne for dem henvise til i en anden tabel likes
for at gøre det lettere for brugere at kunne lide enten en kategori eller et emne.
Det du kan gøre er at oprette en superentitetstabel med undertyperne categories
og topics
. Den auto-inkrementerede nøgle ville blive genereret i superentitetstabellen og kun indsat i én af de to undertypetabeller (baseret på, om det er en kategori eller et emne).
Undertypetabellerne refererer til denne superentitet via det automatisk inkrementerede felt i et 1:1 forhold.
På denne måde kan du simpelthen linke superentitetstabellen til likes
tabel kun baseret på én kolonne (som kan repræsentere enten en kategori eller et emne), og ingen id
i undertypen vil tabeller være til stede i begge.
Her er et forenklet eksempel på, hvordan du kan modellere dette:
Denne model vil give dig mulighed for at opretholde forholdet mellem kategorier og emner, men at have begge entiteter generaliseret i superentity
tabel.
En anden fordel ved denne model er, at du kan abstrahere almindelige felter i undertypetabellerne til superentitetstabellen. Sig for eksempel at categories
og topics
begge indeholdt felterne title
og url
:du kan placere disse felter i superentity
tabel, fordi de er almindelige attributter for dens undertyper. Indsæt kun felter, der er specifikke for undertypetabellerne, I undertypetabellerne.