Doelpunten Negatief bij bepaalde gebruiker
Code (php)
1
2
3
4
5
2
3
4
5
SELECT SUM(s.goals),
FROM matches m, statics s
WHERE m.played = 1
AND m.match_id = s.match_id
GROUP BY m.match_id
FROM matches m, statics s
WHERE m.played = 1
AND m.match_id = s.match_id
GROUP BY m.match_id
Dit is de code die ik nu gebruik, echter kan de player_id (die hier niet wordt weergegeven gezien het een totaal is) ook 1001 zijn, deze code staat voor tegenstander (iemand een andere suggesties om zoiets aan te geven zonder een ver getal in je id's te gebruiken hiervoor), wanneer dit dus het geval is dienen deze goals van het totaal aantal goals afgetrokken te worden.
Nu is dit zeer eenvoudig mogelijk door een kolom toe te voegen aan de tabel of een extra sql query te gebruiken en deze dmv PHP van elkaar af te trekken, echter vroeg ik me af of het ook direct mogelijk is?
Je hebt het over player_id's die eerst niet weergegeven worden en vervolgens ook 1001 kunnen zijn om een tegenstander aan te geven. Hoe kun je nou aan een id herkennen of het een tegenstander is of niet?
En ik neem aan dat je bedoelt dat het aantal doelpunten gemaakt door de tegenstander afgetrokken moet worden van het totaal aantal gemaakte doelpunten? Dat is toch hetzelfde als het aantal doelpunten dat door de ene partij gemaakt is?
En als ik het zo bekijk dat jij een id dat toevallig 1001 is gebruikt om iets te achterhalen, lijkt het me ook geen slecht idee om ff naar deze tut te kijken over normaliseren: http://www.phphulp.nl/php/tutorials/3/150/259/
Off-topic: We moeten een snelcode. Bijv. [normaliseren] dat ie automatisch de link plaatst!
Ik heb tijden lang mijn Databases moeten normaliseren dus weet ongeveer nog wel wat hier de voordelen van zijn, echter werkt het voor mij niet om eigen projecten te normaliseren, dat is een persoonlijk dingetje wat ik nu eenmaal niet in me heb.
Dit id verwijst naar een record in een aparte tabel waarin je alle verenigingen opgeslagen hebt:
verenigingen
---------------
id
vereniging
spelers
---------
id
naam
vereniging_id
Wellicht dat je hier nog een stap tussen wilt, namelijk het team waarin een speler speelt. De spelertabel krijgt dan nog een extra kolom dat het team aangeeft.
goals
-----------------
id = auto_increment
speler_id = 1001 (dus tegenstander)
wedstrijd_id = 12 (link naar tabel matches, met daarin het wedstrijdschema)
doelpunten = 2
eigendoel = 0
penalty = 0
goals
-----------------
id = auto_increment
speler_id = 3 (dus eigen speler)
wedstrijd_id = 12 (link naar tabel matches, met daarin het wedstrijdschema)
doelpunten = 3
eigendoel = 0
penalty = 0
er dmv één query een resultaat uitkomt waar dus de "eigen speler" goals bij elkaar opgeteld (sum()) en "tegenstander (1001, dit is een entry voor totaal aantal doelpunten van dat team)" goals apart van elkaar worden gegenereerd.
Dat jij dat weet doordat id's van een tegenstander boven de 1000 liggen, is leuk maar niet logisch. En het is ook niet logisch om die voorwaarde in je query op te nemen.
Het lijkt mij dat voor een wedstrijd minimaal twee teams nodig zijn. In je datamodel zul je dus meerdere teams op moeten nemen en dus een aparte tabel.