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

Korrekt databasemodel for et brugerfeedbacksystem (en interessant case)

Dette er et dårligt design. Bare lav en 2-kolonne primærnøgle og 2-kolonne fremmednøgler til den. Dette er et grundlæggende anti-mønster kaldet "encoding information in keys", som (derved) kaldes "smarte", "intelligente" eller "sammenkædede" nøgler. En god nøgle er en "dum" nøgle.

F.eks.: :

Desuden er der intet behov at gøre dette.

Mange DBMS'er tillader "beregnede kolonner", hvis værdier automatisk beregnes fra andre kolonner. For at gøre en til en primær nøgle eller fremmednøgle vil du normalt have brug for den "vedvarende", dvs. have optaget hukommelse som en normal kolonne i forhold til blot at blive beregnet, når det er nødvendigt som en visning. MySQL har ikke disse, men 5.7.5 har en eller anden funktionalitet, hvor de kaldes "genererede kolonner", som kan "lagres". Men gør ikke dette for PK'ere eller FK'ere!

Det faktiske designproblem er at håndtere database/SQL-undertyper/hierarchies/inheritance/polymorphism .




  1. Opret en hjemmeside med MySQL

  2. Få det sidste særskilte sæt rekorder

  3. Django manage.py syncdb kaster Intet modul ved navn MySQLdb

  4. NLSSORT() Funktion i Oracle