sql >> Databasteknik >  >> RDS >> Mysql

Korrekt databasmodell för ett användarfeedbacksystem (ett intressant fall)

Detta är en dålig design. Gör bara en 2-kolumns primärnyckel och 2-kolumns främmande nycklar till den. Detta är ett grundläggande antimönster som kallas "kodningsinformation i nycklar" som (därmed) kallas "smarta", "intelligenta" eller "sammanfogade" nycklar. En bra nyckel är en "dum" nyckel.

T.ex. :

Dessutom finns det inget behov för att göra detta.

Många DBMS tillåter "beräknade kolumner" vars värden automatiskt beräknas från andra kolumner. För att göra en till en primärnyckel eller främmande nyckel behöver du vanligtvis den "beständig", dvs att den tar upp minne som en vanlig kolumn kontra att bara beräknas när det behövs som en vy. MySQL har inte dessa, men 5.7.5 har viss funktionalitet där de kallas "genererade kolumner", som kan "lagras". Men gör inte detta för PK eller FK!

Det faktiska designproblemet är att hantera databas/SQL-undertyper/hierarchies/inheritance/polymorphism .




  1. Ställa in och identifiera radmål i genomförandeplaner

  2. Räknar rader för alla tabeller samtidigt

  3. PHP, PDO, MySQL, Observera:Försöker få egendom av icke-objekt

  4. RDLC LocalReport Export till Excel riktigt långsam