Enviat per: jomateix | 27/05/2008

Equips i jugadors

Començo definitivament el que fa temps que tinc pendent i ja va sent hora que acabi. Intentare deixar constància del q vagi fent aquí.

Hi ha dues parts, la relacional i la dels objecte:

Per la part relacional he creat tres taules a la base de dades: una per equips, una altra per jugadors i una tercera per fer la relació n:n entre totes dues.

Taula equip:

CREATE TABLE `projecte`.`EQUIP` (
`id_equip` INT( 8 ) NOT NULL AUTO_INCREMENT ,
`nom_equip` VARCHAR( 256 ) NOT NULL ,
`id_categoria` INT( 4 ) NOT NULL ,
`temporada` VARCHAR( 25 ) NULL ,
`genere` VARCHAR( 10 ) NULL ,
PRIMARY KEY ( `id_equip` )
) ENGINE = MYISAM

Aqui guardare els equips. id_categoria serà clau forana per poder veure els equips que hi ha hagut en diferents temporades dins una mateixa categoria… segurament hauria d’haver fet el mateix amb temporada (per poder veure els diferents equips de diferents categories dins una mateixa temporada). La veritat és que ara no es un tema que em preocupi massa, si es necessari es pot canviar més endavant. “genere” serà per guardar si l’equip és maculí, femení o mixte.

Taula jugador:

CREATE TABLE `projecte`.`jugador` (
`id_jugador` INT( 8 ) NOT NULL AUTO_INCREMENT ,
`nom` VARCHAR( 50 ) NOT NULL ,
`cognom1` VARCHAR( 50 ) NOT NULL ,
`cognom2` VARCHAR( 50 ) NULL ,
`estat` INT( 1 ) NOT NULL DEFAULT '1',
PRIMARY KEY ( `id_jugador` )
) ENGINE = MYISAM

En principi en aquesta taula no hi ha res extrany. Com a molt comentar estat, que indicarà la condició actual del jugador dins el club (actiu, retirat, lesionat, etc).

Taula EquipJugador:


CREATE TABLE `projecte`.`equip_jugador` (
`id_equip` INT( 8 ) NOT NULL ,
`id_jugador` INT( 8 ) NOT NULL ,
`estat` INT( 1 ) NOT NULL DEFAULT '0',
PRIMARY KEY ( `id_equip` , `id_jugador` )
) ENGINE = MYISAM

Aquesta és la taula de la relacio n:n entre els jugadors i els equips. Utilitzar aquest tipus de relació i no una 1:n entre equip i jugador és simple: permetre que es pugui saber pels diferents equips pels que ha passat un jugador al llarg dels anys. El jugador podrà pertanyer a diferents equips al llarg dels anys, i quedarà guardat aqui. Fins i tot si canvia d’equip en un mateix any es guardaria (si no m’equivoco). “estat” servirà per coneixer la relació entre l’equip i el jugador (jugant en aquell equip, ex-jugador, etc).

Fins aqui la part relacional, ara toquen els objectes.

classe Equip:


class Equip{
private $idEquip;
private $nomEquip;
private $id_categoria;
private $temporada;
private $genere;


public function __construct($id){

$this->setIdEquip($id);

}

public setIdEquip($id){

$this->idEquip=$id;
}

public setNomEquip($nom){

$this->nomEquip=nom;
}
public setIdCategoria($id){

$this->id_categoria=$id;
}

public setTemporada($temporada){

$this->temporada=$temporada;
}

public setGenere($genere){

$this->genere=$genere;

}

public getIdEquip(){

return $this->idEquip;
}

public getNomEquip(){

return $this->idNomEquip;
}

public getCategoria(){

return $this->categoria;

}

public getTemporada(){

return $this->temporada;
}

public getGenere(){

return $this->genere;
}
}

?>

classe Jugador:

setIdJugador($id);

}

public setIdJugador($id){

$this->idJugador=$id;
}

public setNom($nom){

$this->nom=nom;
}

public setCognom1($cognom1){

$this->cognom1=$cognom1;
}

public setCognom2($cognom2){

$this->cognom2=$cognom2;
}

public setDataNaixament($data){

$this->data_naixament=$data;
}

public setEstat($estat){

$this->estat=$estat;
}

public getIdJugador(){
return $this->idJugador;
}

public getNom(){

return $this->nom;
}

public getCognom1(){

return $this->cognom1;
}

public getCognom2(){

return $this->cognom2;
}

public getDataNaixament(){

return $this->data_naixament;
}

public getEstat(){

return $this->estat;
}

}

?>

Totes dues classes son molt simples tenen un constructor bàsic, setters i getters. A la classe equip li falta el llistat de jugadors, és un tema pendent. En java es tractaria d’una Collection de jugadors. En php suposo que haure de fer-ho amb un taula.

A partir d’aqui haure de fer el mapejat entre objectes i relacional, és el tema que em preocupa més ara mateix, ja que no el tinc gens clar.

Fins la pròxima.

Editat: se suposa que s’hauria de veure el codi php diferent, però el wp fot el boig.. aixi que a la merda =)


Deixa una resposta

La teva resposta:

Categories