Proyect Studio
Would you like to react to this message? Create an account in a few clicks or log in to continue.



 
HomeSearchLatest imagesRegisterLog in

 

 [SQL]Scripts login

Go down 
AuthorMessage
xelanorth




Posts : 8
Join date : 2016-11-28

[SQL]Scripts login Empty
PostSubject: [SQL]Scripts login   [SQL]Scripts login EmptyFri Dec 09, 2016 7:48 am

Quote :
'CREATE TABLE `gameuser` (
 `nick` varchar(45) NOT NULL,
 `pwd` varchar(20) NOT NULL,
 `rol` varchar(1) NOT NULL DEFAULT ''P'',
 `correo` varchar(50) NOT NULL,
 `codCountry` varchar(3) NOT NULL,
 PRIMARY KEY (`nick`),
 KEY `Pais_pk` (`codCountry`),
 CONSTRAINT `Pais_pk` FOREIGN KEY (`codCountry`) REFERENCES `country` (`codcountry`) NO ACTION
) ENGINE=InnoDB DEFAULT CHARSET=utf8'

CREATE TABLE `country` (
 `codcountry` varchar(3) NOT NULL,
 `desCountry` varchar(40) NOT NULL,
 `desCountryENG` varchar(50) DEFAULT NULL,
 PRIMARY KEY (`codcountry`),
 UNIQUE KEY `codcountry` (`codcountry`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8

'CREATE TABLE `player` (
 `nick` varchar(45) NOT NULL,
 `gender` varchar(1) NOT NULL,
 KEY `Player_Pk` (`nick`),
 CONSTRAINT `Player_Pk` FOREIGN KEY (`nick`) REFERENCES `gameuser` (`nick`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8'
ALTER TABLE Player ADD CONSTRAINT Player_pk UNIQUE(nick);

Cierro el hilo por que este será el script definitivo. Hago una explicación para la gestión y futura expansión de la BD al resto del juego.

La tabla padre GameUser utiliza como clave principal el nombre del personaje. Guarda todos los datos necesarios para el registro menos el género. En el caso especial de la columna 'codCountry', pensando en la futura traducción del juego y en la repetición de campos, se implementa la tabla del mismo nombre.

Esta tiene 3 campos (y por cada nueva traducción del juego debería tener otro más). La Primary key es un código de 3 letras (por ejemplo, para la fila correspondiente a españa sería 'ESP') que está representado en la tabla 'GameUser' como 'codCountry'. Cada código tendrá el nombre del país en cada traducción disponible (en este caso las columnas desCountry = español desCountryENG = inglés), de forma que se desplegara una de estas columnas cuando toque seleccionar de que país eres (dependiendo del idioma en el que juegues) y el código de país será siempre el mismo sin necesidad de crear nuevas filas flower

Por último la tabla hija de 'GameUser', 'Player', tendrá aparte del nick como clave foranea, el género del personaje. Posteriormente se pueden añadir aquí columnas para otros datos (como el dinero del personaje al cambio de turno o la fecha de registro o ultimo acceso).

Las relaciones 'Country'-->'GameUser'-->'Player' están con NO ACTION\DELETE ON CASCADE ENABLE  es decir, no se puede borrar una fila de Country si el codCountry esta en alguna fila de GameUser y si se borra una fila de usuario se borrará la correspondiente en Player.

(Habrá que hacer unos inserts en la tabla Country, y a la hora de registrar se inserta tanto en Player como en GameUser).


Last edited by xelanorth on Sat Dec 10, 2016 10:34 pm; edited 1 time in total
Back to top Go down
xelanorth




Posts : 8
Join date : 2016-11-28

[SQL]Scripts login Empty
PostSubject: Re: [SQL]Scripts login   [SQL]Scripts login EmptyFri Dec 09, 2016 7:49 am

Pantallazos que muestran como gestionar la base de datos desde la propia BD:

[SQL]Scripts login Bd_del10
[SQL]Scripts login Bdcoun10
[SQL]Scripts login Bdgame10
[SQL]Scripts login Bdplay10
Back to top Go down
xelanorth




Posts : 8
Join date : 2016-11-28

[SQL]Scripts login Empty
PostSubject: Re: [SQL]Scripts login   [SQL]Scripts login EmptySat Dec 10, 2016 10:37 pm

Se añade la sentencia 'ALTER TABLE Player ADD CONSTRAINT Player_pk UNIQUE(nick);' Para evitar duplicados de nick en la tabla Player.
Back to top Go down
Sponsored content





[SQL]Scripts login Empty
PostSubject: Re: [SQL]Scripts login   [SQL]Scripts login Empty

Back to top Go down
 
[SQL]Scripts login
Back to top 
Page 1 of 1

Permissions in this forum:You cannot reply to topics in this forum
Proyect Studio :: Data Base developement :: Login DataBase-
Jump to: