Basi di dati Relazionali di Sql

Pensi ad una base di dati che ha collegato i giocatori in un gioco ad uno un altro (per esempio, determinare chi era un amico di ogni giocatore e che sia stata un nemico di ogni giocatore).

  

In primo luogo lascili generano una tabella per memorizzare i dati per ciascuno dei giocatori. Noti l'aggiunta di una chiave primaria, che permette che contiate sul fatto che tutte le file abbiano un campo unico che può essere usato come riferimento. Noti inoltre che ogni fila dei dati nella chiave primaria deve essere unica ad una un altro. Qui è la dichiarazione richiesta per generare la nostra base di dati (denominata gamedata) e la nostra tabella di playerdata.

il mysql > GENERA il gamedata della BASE DI DATI; 
mysql > gamedata di USO; il mysql > GENERA il playerdata 
della TABELLA (- > NULLO UNICO del username CHAR(255), - > la parola 
d'accesso CHAR(255), - > età INTERNA, - > datecreated il TIMESTAMP, -
> KEY(username) PRIMARIO);

_ not qui come noi regol username colonna UNICO e anche NON NULLO. Nei termini semplici, questo significa che deve contenere un valore e che il valore non deve essere lo stesso di qualunque altro username in qualunque altra annotazione nella tabella. Noti inoltre che abbiamo regolato la chiave primaria della tabella per essere il campo del username, poichè pricipalmente cercheremo su questo campo, che vedrete in un momento.

Oltre che queste informazioni, inoltre abbiamo bisogno di un certo senso immagazzinare gli amici ed i nemici. Ciò è fatta per mezzo di una tabella di collegamento. Una tabella di collegamento è realmente giusta una tabella normale della base di dati, ma il relativo scopo principale è collegare i dati in qualche modo o un altro per conservare lo spazio ed ottimizzare il senso gli accessi di base di dati le informazioni.

Generiamo due tabelle di collegamento, una per collegare gli amici ed una per collegare i nemici l'un l'altro. Segue le dichiarazione che sono richieste per compire questa.

Nota 

Se le tabelle di collegamento sono usate, il senso ottimizzato deve memorizzare i valori INTERNI là ed avere un campo di identificazione con il auto_increment nella tabella di playerdata come chiave primaria. Non è poichè leggibile quando effettuate un PRESCELTO, ma esso è più veloce da parte delle vostre applicazioni. Nell'aggiornare il nome del giocatore, non rompe l'integrità della base di dati. Inoltre, le tabelle di collegamento sono spesso strutture da usare soltanto quando ci è quantità di n di rapporti da una fila ad altre file. Se ci è sempre soltanto un rapporto (un amico o nemico), un collegamento diretto dovrebbe essere usato.

il mysql > GENERA i relatefriends della TABELLA (- > 
giocatore CHAR(255), - > amico CHAR(255));

Inoltre:

il mysql > GENERA i relateenemies della TABELLA (- > 
giocatore CHAR(255), - > nemico CHAR(255));

Se ora mostriamo le tabelle nella base di dati con quanto segue comandano:

TABELLE di ESPOSIZIONE > del mysql;

... possiamo vedere che la nostra base di dati ora contiene tre tabelle differenti—la nostra tabella di playerdata e le due tabelle di collegamento.

Ora aggiungiamo un campione dei dati alla tabella di dati del giocatore, in modo da possiamo sperimentare con le tabelle di collegamento e capire la logica di come usarle efficacemente. Qui è la dichiarazione richiesta per aggiungere i nostri dati del campione alla tabella di playerdata:

il mysql > l'INSERTO nel playerdata STIMA - > ('Andrew ', 
'qwerty ', 20, POSIZIONE DI SEGNALE MINIMO), - > ('henry ', 'letmein 
', 34, POSIZIONE DI SEGNALE MINIMO), - > ('Sandra ', 'dra33 ', 19, 
POSIZIONE DI SEGNALE MINIMO), - > ('John ', 'j12d ', 23, POSIZIONE DI 
SEGNALE MINIMO), - > ('jenny ', 'jen123 ', 34, POSIZIONE DI SEGNALE 
MINIMO);

Se selezioniamo tutte le informazioni a partire dalla tabella di playerdata ora che usando quanto segue comandi:

il mysql > SELEZIONA * A PARTIRE dal playerdata

Ora che abbiamo alcuni dati del campione, proviamo a generare alcuni rapporti fra i giocatori nella base di dati. In primo luogo aggiunga alla tabella di collegamento dei relatefriends il fatto che il henry è amici con Sandra. Qui è la dichiarazione richiesta per aggiungere questo alla tabella di collegamento:

mysql > INSERTO NEI VALORI dei relatefriends - > ('henry 
', 'Sandra ');

Ora aggiungiamo un po'più di dati del campione sia nei relatefriends che nelle tabelle di collegamento dei relateenemies e vediamo come possiamo maneggiare i dati. Le due dichiarazione richieste per aggiungere nei dati del campione sono qui sotto:

Nota 

Per evitare che è un amico e un nemico allo stesso tempo, una tabella di rapporto ha potuto essere usata. Aggiunga appena una bandierina "nemica" del campo e se è regolato, significa che sono nemici; altrimenti sono amici.

il mysql > l'INSERTO nei relatefriends STIMA - > ('Andrew 
', 'henry '), - > ('Andrew ', 'John '), - > ('Andrew ', 'jenny '), - >
('Sandra ', 'jenny ');

Ed anche:

il mysql > l'INSERTO nei relateenemies STIMA - > ('Andrew 
', 'Sandra '), - > ('henry ', 'jenny '), - > ('henry ', 'John ');  

Ora che abbiamo tutti i nostri dati del campione, lascili vedono se possiamo scoprire chi Andrew è amici con usando la seguente dichiarazione:

mysql > amico PRESCELTO dai relatefriends DOVE giocatore =
'Andrew ';

Quando eseguiamo questa dichiarazione, le esposizioni di sezione comandi una lista di tutti i giocatori che Andrew è amici con.

Di nuovo, possiamo fare esattamente lo stesso con la tabella di collegamento dei relateenemies. Per esempio, potremmo scoprire tutti i nemici del henry con la seguente dichiarazione:

mysql > nemico PRESCELTO dai relateenemies DOVE giocatore 
= 'henry '

Con questi dati, se allora desiderassimo scoprire le più informazioni sul nemico del henry che ha il username del jenny, useremmo la seguente dichiarazione:

il mysql > SELEZIONA * A PARTIRE dal playerdata DOVE 
username = 'jenny ';
ciò è un articolo aggiunto da George Ionescu


Diniego: Il nostro Web site non è responsabile delle informazioni contenute da questo articolo. Questo articolo in nessun modo riflette le viste, le opinioni, i pensieri o la credenza del personale dell'indice degli articoli.

Avviso di traduzione: L'articolo "basi di dati relazionali di SQL" è stato tradotto usando un servizio di traduzione automatizzato. Chiediamo scusa francamente per tutti gli errori di traduzione che hanno accaduto. Grazie per capire.

Online: 789 users browsing the articles directory