sql >> Databáze >  >> RDS >> Mysql

Auto-inkrement MySQL mezi tabulkami

Zdá se, že chcete rozlišovat kategorie a témata ve dvou samostatných tabulkách, ale nechat ID obou z nich odkazovat v jiné tabulce likes usnadnit uživatelům, kteří mají rádi kategorii nebo téma.

Co můžete udělat, je vytvořit tabulku superentit s podtypy categories a topics . Automaticky inkrementovaný klíč by byl vygenerován v tabulce superentit a vložen pouze do jedné ze dvou tabulek podtypů (podle toho, zda se jedná o kategorii nebo téma).

Tabulky podtypů odkazují na tuto superentitu prostřednictvím automaticky inkrementovaného pole ve vztahu 1:1.

Tímto způsobem můžete jednoduše propojit tabulku superentit s likes tabulka pouze na základě jednoho sloupce (který může představovat kategorii nebo téma) a žádné id v tabulkách podtypů budou přítomny v obou.

Zde je zjednodušený příklad, jak to můžete modelovat:

Tento model by vám umožnil zachovat vztah mezi kategoriemi a tématy, ale obě entity by byly zobecněny v superentity tabulka.

Další výhodou tohoto modelu je, že můžete abstrahovat běžná pole v tabulkách podtypů do tabulky superentit. Řekněme například, že categories a topics obě obsahovaly pole title a url :tato pole můžete vložit do superentity tabulky, protože jsou společnými atributy jeho podtypů. Do tabulek podtypů vkládejte pouze pole, která jsou specifická pro tabulky podtypů.



  1. Bezpečnostní otázka PHP?

  2. Aktualizujte řádek, ale vložte, pokud řádek v codeigniter neexistuje

  3. Jaká je maximální délka názvu tabulky v Oracle?

  4. MySQL:zkontrolujte, jakou verzi:32bitovou nebo 64bitovou?