sql >> Databasteknik >  >> Database Tools >> phpMyAdmin

Databasrelationer med phpmyAdmin (sammansatta nycklar)

NULL-värden

Det betyder också att objektet kommer att ha 5 id inklusive sitt eget. Allt detta orsakar nollvärden (uppenbarligen ett stort nej nej, vilket jag kan förstå) för om plats och pris är valfria och inte används på en post i objekttabellen kommer jag att ha ett nollvärde där

Personligen tror jag att detta är en situation där NULL värdena är perfekta, och jag skulle absolut inte tvivla på att lägga in detta i min databasdesign.

Ett sätt jag har sett andra uppnå samma sak utan NULL värden är att skapa en post i de valfria tabellerna (plats och pris i ditt exempel) med ett ID på 0 som betyder att det inte finns någon relaterad post - men detta gör bara 10 gånger mer arbete för utvecklaren av applikationen att filtrera bort dessa poster - det är MYCKET lättare att göra en join och om du inte får tillbaka några poster finns det inga relaterade poster i den valfria tabellen.

Kom bara ihåg att göra en LEFT eller RIGHT OUTER gå med om du vill returnera Item s oavsett om de har en Place eller Price associerad (du får NULL värden i de valfria tabellkolumnerna för Item s som inte har associerade poster) och en INNER gå med om du bara vill ha Item är det gör har en tillhörande valfri post.

Kompositnycklar

En sammansatt nyckel är en nyckel i en tabell som består av mer än en kolumn. Om var och en av dina Person , Item , Place och Price alla har ett ID (även om det bara är ett automatiskt ökande nummer) du behöver inte en sammansatt nyckel - bara en primärnyckelkolumn i varje tabell och en främmande nyckelkolumn i Item tabell för varje relaterad tabell - t.ex. item_id , person_id , place_id , price_id . Du anger att Item har sitt eget ID, så du borde inte behöva en sammansatt nyckel - bara en primärnyckel på item_id kolumn.




  1. komma till phpmyadmin med mamp

  2. hur man lägger till sammansatt unik till en kolumn i tabellen mysql

  3. sql raderingsfel

  4. Det gick inte att generera slumpmässigt CSRF-token! (phpmyadmin 4.6.4)