Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Automatisches Inkrementieren von MySQL zwischen Tabellen

Es scheint, dass Sie Kategorien und Themen in zwei separaten Tabellen unterscheiden möchten, aber die IDs von beiden in einer anderen Tabelle likes referenziert werden sollen um Benutzern das Liken einer Kategorie oder eines Themas zu erleichtern.

Was Sie tun können, ist eine Superentitätstabelle mit den Untertypen categories zu erstellen und topics . Der automatisch inkrementierte Schlüssel würde in der Superentitätstabelle generiert und nur in eine der beiden Untertyptabellen eingefügt (basierend darauf, ob es sich um eine Kategorie oder ein Thema handelt).

Die Subtype-Tabellen referenzieren diese Superentität über das automatisch inkrementierte Feld in einer 1:1-Beziehung.

Auf diese Weise können Sie die Super-Entity-Tabelle einfach mit den likes verknüpfen Tabelle, die nur auf einer Spalte basiert (die entweder eine Kategorie oder ein Thema darstellen kann), und keine id in den Untertyptabellen wird in beiden vorhanden sein.

Hier ist ein vereinfachtes Beispiel dafür, wie Sie dies modellieren können:

Dieses Modell würde es Ihnen ermöglichen, die Beziehung zwischen Kategorien und Themen aufrechtzuerhalten, aber beide Entitäten in der superentity zu verallgemeinern Tabelle.

Ein weiterer Vorteil dieses Modells besteht darin, dass Sie gemeinsame Felder in den Subtype-Tabellen in die Superentity-Tabelle abstrahieren können. Sagen Sie zum Beispiel, dass categories und topics beide enthielten die Felder title und url :Sie könnten diese Felder in die superentity einfügen Tabelle, weil sie gemeinsame Attribute ihrer Untertypen sind. Setzen Sie nur Felder, die für die Subtyptabellen spezifisch sind, IN die Subtyptabellen.