Bases de dados Relacionais do Sql

Pense de uma base de dados que relacione os jogadores em um jogo a um outros (para o exemplo, determinar quem eram um amigo de cada jogador e que era um inimigo de cada jogador).

  

Deixe-nos primeiramente críam uma tabela para armazenar os dados para cada um dos jogadores. Observe a adição de uma chave preliminar, que permita que você confie no fato que todas as fileiras têm um campo original que possa ser usado como uma referência. Anote também que cada fileira dos dados na chave preliminar deve ser original a uma outra. Está aqui a indicação requerida para criar nossa base de dados (chamada gamedata) e nossa tabela do playerdata.

o mysql > CRÍA o gamedata da BASE DE DADOS; mysql >
gamedata do USO; o mysql > CRÍA o playerdata da TABELA (- > NAO
NULO ORIGINAL do username CHAR(255), - > a senha CHAR(255), - > idade 
INTERNA, - > datecreated o TIMESTAMP, - > KEY(username) PRELIMINAR);

_ observ aqui como nós ajust username coluna ORIGINAL e também NÃO NULO. Em termos simples, isto significa que deve conter um valor, e que o valor não deve ser o mesmo que nenhum outro username em nenhum outro registro na tabela. Anote também que nós ajustamos a chave preliminar da tabela para ser o campo do username, porque nós estaremos procurarando principalmente neste campo, que você verá em um momento.

Além a esta informação, nós necessitamos também alguma maneira armazenar amigos e inimigos. Isto é feito por meio de uma tabela da ligação. Uma tabela da ligação é realmente justa uma tabela normal da base de dados, mas sua finalidade principal é relacionar dados em alguma maneira ou em outra conservar o espaço e optimize a maneira os acessos de base de dados a informação.

Deixe-nos criar duas tabelas da ligação, uma para relacionar amigos e uma para serelacionar- inimigos. Seguir é as indicações que são requeridas para realizar esta.

Nota 

Se as tabelas da ligação forem usadas, a maneira optimized deve armazenar lá valores INTERNOS e ter um campo do ID com o auto_increment na tabela do playerdata como uma chave preliminar. Não é porque readable quando você executa um SELETO, mas ele é mais rápido dentro de suas aplicações. Ao atualizar o nome de um jogador, não quebra a integridade da base de dados. Também, as tabelas da ligação são frequentemente estruturas a ser usadas somente quando há uma quantidade de n de relações de uma fileira a outras fileiras. Se houver sempre somente uma relação (um amigo ou inimigo), uma ligação direta deve ser usada.

o mysql > CRÍA relatefriends da TABELA (- > jogador 
CHAR(255), - > amigo CHAR(255));

Também:

o mysql > CRÍA relateenemies da TABELA (- > jogador 
CHAR(255), - > inimigo CHAR(255));

Se nós mostrarmos agora as tabelas na base de dados com o seguinte comandam:

TABELAS do mysql > da MOSTRA;

... nós podemos ver que nossa base de dados contem agora três tabelas diferentes—nossa tabela do playerdata e as duas tabelas da ligação.

Deixe-nos agora adicionar uma amostra dos dados à tabela dos dados do jogador, assim que nós podemos experimentar com as tabelas da ligação e compreender a lógica de como usá-las eficazmente. Está aqui a indicação requerida para adicionar nossos dados da amostra à tabela do playerdata:

o mysql > a INSERÇÃO no playerdata AVALIAM - > (' Andrew
', ' qwerty ', 20, ZERO), - > (' Henry ', ' letmein ', 34, ZERO), - > 
(' Sandra ', ' dra33 ', 19, ZERO), - > (' John ', ' j12d ', 23, ZERO),
- > (' jenny ', ' jen123 ', 34, ZERO);

Se nós selecionarmos toda a informação da tabela do playerdata que usa agora o seguinte comande:

o mysql > SELECIONA * do playerdata

Agora que nós temos alguns dados da amostra, nos deixamos tentar criar algumas relações entre os jogadores na base de dados. Adicione primeiramente à tabela da ligação dos relatefriends o fato que o Henry é amigos com Sandra. Está aqui a indicação requerida para adicionar isto à tabela da ligação:

mysql > INSERÇÃO EM VALORES dos relatefriends - > (' 
Henry ', ' Sandra ');

Deixe-nos agora adicionar alguns mais dados da amostra nos relatefriends e em tabelas da ligação dos relateenemies e ver como nós podemos manipular os dados. As duas indicações requeridas para adicionar nos dados da amostra estão abaixo:

Nota 

Para impedir ao mesmo tempo ser um amigo e um inimigo, uma tabela da relação podia ser usada. Adicione apenas uma bandeira "inimiga" do campo, e se se ajustar, significa que são inimigos; se não são amigos.

o mysql > a INSERÇÃO em relatefriends AVALIAM - > (' 
Andrew ', ' Henry '), - > (' Andrew ', ' John '), - > (' Andrew ', ' 
jenny '), - > (' Sandra ', ' jenny ');

E também:

o mysql > a INSERÇÃO em relateenemies AVALIAM - > (' 
Andrew ', ' Sandra '), - > (' Henry ', ' jenny '), - > (' Henry ', ' 
John ');  

Agora que nós temos todos nossos dados da amostra, deixam-nos vêem se nós pudermos encontrar para fora quem Andrew é amigos com usar a seguinte indicação:

mysql > amigo SELETO dos relatefriends ONDE jogador = ' 
Andrew ';

Quando nós executarmos esta indicação, as exposições de console uma lista de todos os jogadores que Andrew é amigos com.

Outra vez, nós podemos fazer exatamente o mesmo com a tabela da ligação dos relateenemies. Para o exemplo, nós poderíamos encontrar para fora todos os inimigos do Henry com a seguinte indicação:

mysql > inimigo SELETO dos relateenemies ONDE jogador = ' 
Henry '

Com estes dados, se nós quiséssemos então encontrar para fora mais informação sobre o inimigo do Henry que tem o username do jenny, nós usaríamos a seguinte indicação:

o mysql > SELECIONA * do playerdata ONDE username = ' 
jenny ';
este é um artigo adicionado por George Ionescu


Disclaimer: Nosso Web site não é responsável para a informação contida por este artigo. Este artigo em nenhuma maneira reflete as vistas, as opiniões, os pensamentos ou a opinião da equipe de funcionários do diretório dos artigos.

Observação da tradução: O artigo "bases de dados relacionais do SQL" foi traduzido usando um serviço de tradução automatizado. Nós desculpamo-nos sincerely por todos os erros da tradução que ocorram. Obrigado compreendendo.

Online: 555 users browsing the articles directory