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

Relazioni del database usando phpmyAdmin (chiavi composite)

Valori NULL

Significa anche che l'oggetto avrà 5 ID incluso il suo. Tutto ciò causa valori nulli (apparentemente un grande no no, che posso capire) perché se il posto e il prezzo sono opzionali e non vengono utilizzati su una voce della tabella degli articoli avrò un valore nullo lì

Personalmente penso che questa sia una situazione in cui NULL i valori sono perfetti e di certo non avrei dubbi sull'inserirlo nella progettazione del mio database.

In un modo ho visto altri ottenere la stessa cosa senza NULL valori è quello di creare un record nelle tabelle facoltative (posto e prezzo nell'esempio) con un ID 0 che significa che non c'è alcun record correlato - ma questo rende solo 10 volte più lavoro per lo sviluppatore dell'applicazione per filtrare questi record - è MOLTO più facile fare un join e se non si recupera alcun record, non ci sono record correlati nella tabella opzionale.

Ricorda solo di fare un LEFT o RIGHT OUTER iscriviti se vuoi restituire Item s indipendentemente dal fatto che abbiano un Place o Price associato (otterrai NULL valori nelle colonne della tabella facoltative per Item s che non hanno record associati) e un INNER iscriviti se solo vuoi l'Item s che fa avere un record facoltativo associato.

Chiavi composite

Una chiave composita è una chiave in una tabella composta da più di una colonna. Se ciascuno dei tuoi Person , Item , Place e Price tutti hanno un ID (anche se è solo un numero a incremento automatico) non avrai bisogno di una chiave composta:solo una colonna di chiave primaria in ogni tabella e una colonna di chiave esterna in Item tabella per ogni tabella correlata - es. item_id , person_id , place_id , price_id . Dichiari che Item ha un proprio ID, quindi non dovresti aver bisogno di una chiave composita:solo una chiave primaria su item_id colonna.