sql >> Database teknologi >  >> Database Tools >> phpMyAdmin

Databaserelationer ved hjælp af phpmyAdmin (sammensatte nøgler)

NULL-værdier

Det betyder også, at varen vil have 5 id'er inklusive sit eget. Alt dette forårsager null-værdier (tilsyneladende et stort nej nej, hvilket jeg kan forstå), for hvis sted og pris er valgfrie og ikke bruges på én indgang til genstandetabellen, vil jeg have en nulværdi der

Personligt tror jeg, at dette er en situation, hvor NULL værdier er perfekte, og jeg ville bestemt ikke være i tvivl om at sætte dette ind i mit databasedesign.

På en måde har jeg set andre opnå det samme uden NULL værdier er at oprette en post i de valgfrie tabeller (sted og pris i dit eksempel) med et ID på 0, der betyder, at der ikke er nogen relateret post - men dette gør bare 10 gange mere arbejde for udvikleren af ​​applikationen at filtrere disse poster fra - det er LANGT nemmere at deltage, og hvis du ikke får nogen poster tilbage, er der ingen relaterede poster i den valgfri tabel.

Bare husk at lave en LEFT eller RIGHT OUTER deltag, hvis du vil returnere Item s, uanset om de har et Place eller Price tilknyttet (du får NULL værdier i de valgfri tabelkolonner for Item s, der ikke har tilknyttede poster) og en INNER deltage, hvis du kun ønsker Item er det gør har en tilknyttet valgfri post.

Sammensatte nøgler

En sammensat nøgle er en nøgle i en tabel, der består af mere end én kolonne. Hvis hver af dine Person , Item , Place og Price alle har et id (selvom det kun er et automatisk stigningsnummer), du behøver ikke en sammensat nøgle - kun en primær nøglekolonne i hver tabel og en fremmednøglekolonne i Item tabel for hver relateret tabel - f.eks. item_id , person_id , place_id , price_id . Du angiver det Item har sit eget ID, så du skulle ikke have brug for en sammensat nøgle - kun en primær nøgle på item_id kolonne.




  1. Hent indholdet af en visning Eclipse RCP

  2. uddrag af tekst fra kolonne og kopier den til en ny kolonne

  3. Kan ikke vedhæfte ASP.NET-database til SQL Server Management Studio

  4. Proceduren timeout fra ADO.NET, men ikke i SSMS