sql >> Database teknologi >  >> RDS >> Mysql

To tabeller med samme kolonner eller en tabel med yderligere kolonne?

Afhænger af begrænsninger:

  • Har du fremmednøgler eller checks på apples som ikke findes på oranges (eller omvendt)?
  • Har du brug for at holde nøglerne unikke på tværs af begge tabeller (så ingen apple). kan have samme ID som nogle orange )?

Hvis svarene på disse to spørgsmål er:"ja" og "nej" , hold tabellerne adskilt (så begrænsninger kan gøres tabelspecifikke).

Hvis svarene er:"nej" og "ja" , flet dem sammen (så du kan skabe en nøgle, der spænder over begge dele).

Hvis svarene er:"ja" og "ja" , overvej at emulere arv:

Opslagsdata er et typisk eksempel på tabeller, der ligner hinanden, men som alligevel skal holdes adskilt, så FK'er kan holdes adskilt.

Specifikt er dette "alle klasser i separate tabeller"-strategien til at repræsentere arv (alias kategori, underklassificering, undertype, generaliseringshierarki osv.). Du vil måske tage et kig på dette indlæg for mere info.



  1. mysql hvis rækken ikke eksisterer, tag standardværdien

  2. PostgreSQL funktionskald

  3. SQL Server - transaktioner ruller tilbage ved fejl?

  4. Datointerval overlappende kontrolbegrænsning