Database voor fantasy game

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

G Jansma

G Jansma

20/10/2017 19:24:58
Quote Anchor link
Hallo,

Ik heb het idee opgevat om een soort fantasy sport spel te maken. Ik weet alleen niet goed hoe ik dat het beste in de database kan invullen.

Het idee is:
- Budget van 100 punten
- Door punten te scoren kan je je budget verhogen
- Seizoen in periodes, met wisselmomenten
- Bij een wissel verlies je een percentage (zeg 25%) van de waarde van de speler. Als je iemand van 20 punten verkoopt krijg je dus 15 punten terug.

Ik heb wat vragen hoe ik dit het beste kan vormgeven in de database, en hoe soortgelijke spellen (Scorito bv) dat doen. Zou ik elke 'beweging' moeten vastleggen, met een nulletje of eentje voor inactieve/actieve, of gewoon verwijderen als iemand een speler verkoopt en alleen de huidige teams bewaren?

Ik moet wel sowieso de definitieve teams voor elke periode bewaren, zou ik dat in een aparte tabel moeten doen?

Zou ik voor de tussenstand de punten telkens moeten optellen, of het al voor de tijd laten optellen en opslaan in de database?

Hetzelfde eigenlijk voor het budget. Het budget is dus het beginbudget + gescoorde punten - inkomende transfers + 75% van de uitgaande transfers. Is het raadzaam om dat telkens uit te rekenen, of op te slaan?

Ik hoop dat jullie me wat kunnen helpen met jullie inzichten.
 
PHP hulp

PHP hulp

03/12/2021 14:19:39
 
Frank Nietbelangrijk

Frank Nietbelangrijk

21/10/2017 10:38:43
Quote Anchor link
Ik zou willen zeggen voordat je aan zo een groot project begint verdiep je eens in database normalisatie.

Speerpunten:
- geen dubbele data opslaan.
- geen meerdere waarden in één veld dmv een array
- gebruik constraints (beperkingen)

Wij kunnen ons onmogelijk inleven in jouw plannen met een dergelijk korte omschrijving of zonder kennis over het inhoudelijke deel van het spel.

Slechts in enkele gevallen ga je gegevens van de ene tabel naar de andere verplaatsen. Gaat een beetje ver om daar nu een heel verhaal over te schrijven. Onthoud vooral dat je meestal genoeg hebt aan het aanpassen van één veld per record om de status te wijzigen.

Ik denk dat je in ieder geval een inlogsysteem moet hebben en dus een tabel users. Ook denk ik dat een user geen speler is omdat spelers door users onderling aan elkaar verkocht mogen worden. Je zult dus een spelers tabel krijgen met een kolom owner_id die aangeeft welke user eigenaar is van de speler. Bij verkoop hoef je slechts die owner_id aan te passen. Punten tellen hangt af van het volgende:
Moet de totstandkoming van de punten later nog in te zien zijn? Dan sla je records onder elkaar op in een tabel en bereken je de stand keer op keer opnieuw uit. Hoeft dat niet dan kun je de actuele score telkens overschrijven.

Neem ruim de tijd om een overzicht te creëren van je tabellen met hun onderlinge relaties en vraag je telkens af wat het betekent voor die relaties als je iets aanpast in een tabel.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.