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

Dvě tabulky se stejnými sloupci nebo jedna tabulka s dalším sloupcem?

Závisí na omezeních:

  • Máte cizí klíče nebo CHECK na apples které na oranges neexistují (nebo naopak)?
  • Potřebujete zachovat jedinečné klíče v obou tabulkách (takže žádné apple může mít stejné ID jako některé orange )?

Pokud jsou odpovědi na tyto dvě otázky:"ano" a "ne" , ponechte tabulky oddělené (takže omezení mohou být specifická pro tabulku).

Pokud jsou odpovědi:"ne" a "ano" , sloučit je dohromady (takže můžete vytvořit klíč, který zahrnuje oba).

Pokud jsou odpovědi:"ano" a "ano" , zvažte emulaci dědičnosti:

Vyhledat data je typickým příkladem tabulek, které vypadají podobně, ale musí být udržovány odděleně, aby mohly být FK odděleny.

Konkrétně se jedná o strategii "všechny třídy v samostatných tabulkách" pro reprezentaci dědičnosti (aka. kategorie, podtřídy, podtypování, hierarchie zobecnění atd.). Možná se budete chtít podívat na tento příspěvek pro více informací.



  1. Jak vygenerovat příkaz Přidat sloupec pro všechny tabulky v databázi na serveru SQL - SQL Server / Výukový program T-SQL, část 49

  2. Operátoři T-SQL SET Část 2:INTERSECT a EXCEPT

  3. Počítejte od stolu, ale přestaňte počítat u určitého čísla

  4. Jak vygenerovat příkazy vložení z dat aplikace Excel a načíst do tabulky serveru SQL - SQL Server / Výukový program TSQL, část 103