[quote=Orocildo]Hum. Entendi… Mas o “punk” mesmo onde estou parado é como vou implementar a pontuação. De que maneira vou modelar a tabela Jogos e construir a query da view.
Uma alternativa que cheguei e funcionaria seria dado o resultado da partida eu registrava(usando uma trigger) em outra tabela “Auxiliar Resultado”, a pontuação que cada um adquiriu naquele jogo, tipo:
Dado o jogo : SP 1 x 1 Palmeiras. Faz de conta que SP tem id 7 e Palmeiras 17.
Dado o jogo : Inter 1 x 0 Grêmio. Faz de conta que Inter tem id 2 e Grêmio 14.
A trigger gravava na tabela:
id_clube | pontos
7 1
17 1
2 3
14 0
Aí sim, ficava um docinho de coco, só fazer um SUM() agrupando pelo id_clube e tava resolvida o problema da pontuação. Agora fazendo uma view diretos na tabela Jogos “me quebrou as pernas”, pois não saberia como implementar dessa maneira a pontuação.
[/quote]
Creio entao, que voce deveria ter uma tabela que fazia a "pontuação de cada time"
Se voce não quiser fazer isso, teria que modelar a tabela JOGOS de uma maneira um pouco diferente (que inclua o ponto obtidos no jogo )
Não acho que seja legal, acho que seja viavel e estremamente util, e nao prejudicaria em nada o desempenho
Isto facilitaria a sua criação da view, e faria o calculo no proprio select
Ex: [code]
– TABELAS
CREATE TABLE JOGOS (
id_jogo int not null,
id_clube_casa int not null,
id_clube_fora int not null,
gols_clube_casa int not null,
gols_clube_fora int not null,
id_vencedor int not null, – FK PARA CLUBES
id_arbitro int not null, – FK PARA ARBITRO
_data date not null,
rodada int no null,
pontos_jogo – criei este novo campo
CONSTRAINT PK_JOGOS PRIMARY KEY (id_jogo)
);
CREATE TABLE CLUBES(
id_clube int not null,
nome varchar(50) not null,
estadio int not null,
CONSTRAINT PK_CLUBES PRIMARY KEY (id_clube)
);
– SELECT DA VIEW
SELECT JOGOS.I_VENCEDOR,
VENCEDOR.NOME,
SUM(JOGOS.PONTOS_JOGO) AS TOTALPONTOS,
FROM JOGOS
JOIN CLUBES AS CLUBCASA ON (CLUBCASA.ID_CLUBE = JOGOS.ID_CLUBE_CASA)
JOIN CLUBES AS CLUBFORA ON (CLUBFORA.ID_CLUBE = JOGOS.ID_CLUBE_FORA)
JOIN CLUBES AS VENCEDOR ON (VENCEDOR.ID_CLUBE = JOGOS.ID_VENCEDOR)
group by JOGOS.I_VENCEDOR,
VENCEDOR.NOME
order by TOTALPONTOS [/code]
Uma coisa assim talvez Orocildo?