Bases de datos Emparentadas del Sql

Piense en una base de datos que relacionó a jugadores en un juego con uno otros (por ejemplo, era un enemigo determinarse quién eran un amigo de cada jugador y que de cada jugador).

  

Primero déjenos crean una tabla para almacenar los datos para cada uno de los jugadores. Note la adición de una llave primaria, que permite que usted confíe en el hecho de que todas las filas tienen un campo único que se pueda utilizar como referencia. Observe también que cada fila de datos en la llave primaria debe ser única a una otra. Aquí está la declaración requerida para crear nuestra base de datos (llamada gamedata) y nuestra tabla del playerdata.

el mysql > CREA gamedata de la BASE DE DATOS; mysql 
> gamedata del USO; el mysql > CREA playerdata de la TABLA (- > 
NO NULO ÚNICO del username CHAR(255), - > la contraseña CHAR(255), -
> edad INTERNA, - > datecreated el TIMESTAMP, - > KEY(username) 
PRIMARIO);

_ notar aquí cómo nosotros fijar username columna ÚNICO y también NO NULO. En términos simples, esto significa que debe contener un valor, y que el valor no debe ser igual que ningún otro username en ningún otro expediente en la tabla. Observe también que hemos fijado la llave primaria de la tabla para ser el campo del username, pues buscaremos principalmente en este campo, que usted verá en un momento.

Además de esta información, también necesitamos una cierta manera de almacenar amigos y a enemigos. Esto se hace por medio de una tabla del acoplamiento. Una tabla del acoplamiento es realmente justa una tabla normal de la base de datos, pero su propósito principal es relacionar datos de una cierta manera o de otra de conservar el espacio y de optimizar la manera los accesos de base de datos la información.

Creemos dos tablas del acoplamiento, una para relacionar a amigos y una para relacionar a enemigos el uno al otro. Los siguientes son las declaraciones que se requieren para lograr esto.

Nota 

Si se utilizan las tablas del acoplamiento, la manera optimizada es almacenar valores INTERNOS allí y tener un campo de la identificación con el auto_increment en la tabla del playerdata como llave primaria. No es pues legible cuando usted realiza un SELECTO, solamente él es más rápido dentro de sus usos. Al poner al día el nombre de un jugador, no rompe la integridad de la base de datos. También, las tablas del acoplamiento son a menudo estructuras que se utilizarán solamente cuando hay cantidad de n de relaciones a partir de una fila a otras filas. Si hay siempre solamente una relación (un amigo o enemigo), un acoplamiento directo debe ser utilizado.

el mysql > CREA relatefriends de la TABLA (- > jugador 
CHAR(255), - > amigo CHAR(255));

También:

el mysql > CREA relateenemies de la TABLA (- > jugador 
CHAR(255), - > enemigo CHAR(255));

Si ahora demostramos las tablas en la base de datos con el siguiente ordenan:

TABLAS del mysql > de la DEMOSTRACIÓN;

... podemos ver que nuestra base de datos ahora contiene tres diversas tablas—nuestra tabla del playerdata y las dos tablas del acoplamiento.

Ahora agreguemos una muestra de datos a la tabla de los datos del jugador, así que podemos experimentar con las tablas del acoplamiento y entender la lógica de cómo utilizarlas con eficacia. Aquí está la declaración requerida para agregar nuestros datos de la muestra a la tabla del playerdata:

el mysql > el RELLENO EN playerdata VALORA - > (' Andrew 
', ' qwerty ', 20, FALTA DE INFORMACIÓN), - > (' Henrio ', el ' 
letmein ', 34, FALTA DE INFORMACIÓN), - > (' Sandra ', ' dra33 ', 19,
FALTA DE INFORMACIÓN), - > (' Juan ', ' j12d ', 23, FALTA DE 
INFORMACIÓN), - > (la ' máquina de hilar ', ' jen123 ', 34, FALTA DE
INFORMACIÓN);

Si seleccionamos toda la información de la tabla del playerdata ahora que usa el siguiente ordene:

el mysql > SELECCIONA * de playerdata

Ahora que tenemos ciertos datos de la muestra, intentemos crear algunas relaciones entre los jugadores en la base de datos. Primero agregue a la tabla del acoplamiento de los relatefriends el hecho de que el Henrio es amigos con Sandra. Aquí está la declaración requerida para agregar esto a la tabla del acoplamiento:

mysql > RELLENO EN VALORES de los relatefriends - > (' 
Henrio ', ' Sandra ');

Ahora agreguemos más datos de la muestra en los relatefriends y las tablas del acoplamiento de los relateenemies y veamos cómo podemos manipular los datos. Las dos declaraciones requeridas para agregar en los datos de la muestra están abajo:

Nota 

Para evitar el ser un amigo y un enemigo en el mismo tiempo, una tabla de la relación podía ser utilizada. Apenas agregue una bandera "enemiga" del campo, y si se fija, significa que son enemigos; si no son amigos.

el mysql > el RELLENO EN relatefriends VALORA - > (' 
Andrew ', ' Henrio '), - > (' Andrew ', ' Juan '), - > (' Andrew ', ' 
máquina de hilar '), - > (' Sandra ', ' máquina de hilar ');

Y también:

el mysql > el RELLENO EN relateenemies VALORA - > (' 
Andrew ', ' Sandra '), - > (' Henrio ', ' máquina de hilar '), - > ('
Henrio ', ' Juan ');  

Ahora que tenemos todos nuestros datos de la muestra, déjenos ven si podemos descubrir quién es amigos Andrew con usando la declaración siguiente:

mysql > amigo SELECTO de los relatefriends DONDE jugador =
' Andrew ';

Cuando ejecutamos esta declaración, las exhibiciones de consola una lista de todos los jugadores que Andrew es amigos con.

Una vez más podemos hacer exactamente igual con la tabla del acoplamiento de los relateenemies. Por ejemplo, podríamos descubrir a todos los enemigos del Henrio con la declaración siguiente:

mysql > enemigo SELECTO de los relateenemies DONDE jugador
= ' Henrio '

Con estos datos, si entonces deseáramos descubrir más información sobre el enemigo del Henrio que tiene el username de la máquina de hilar, utilizaríamos la declaración siguiente:

el mysql > SELECCIONA * del playerdata DONDE username = ' 
máquina de hilar ';
esto es un artículo agregado por George Ionescu


Negación: Nuestro Web site no es responsable de la información contenida por este artículo. Este artículo de ninguna manera refleja las vistas, las opiniones, los pensamientos o la creencia del personal del directorio de los artículos.

Aviso de la traducción: El artículo "bases de datos emparentadas del SQL" fue traducido usando un servicio de traducción automatizado. Nos disculpamos sinceramente por cualquier error de la traducción que ocurriera. Gracias por entender.

Online: 562 users browsing the articles directory