Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    Help tabelle mysql per gestionale sport

    Vorrei farmi un gestionalino personalizzato per la gestione di un campionato (di volley).
    Mi basta una cosa semplice. Su gooogle si trovano cose strane... meglio che le lasci dove sono.

    Vorrei un aiuto su come impostare le tabelle di Mysql

    Stavo pensando:

    Campionato (id, nome_campionato)
    Squadre (id, nome_squadra)
    Risultati (id, data, id_campionato, id_sq_a, id_sq_b, risultato_sq_a, risultato_sq_b)

    Così coi risultati potrebbe venirci fuori un calendario...

    E la classifica?

    Come potrei impostare al meglio?
    Fantasupermegafavolipermeramagicultra irresistibili
    4 10 30 100 1001 personaggi insuperabili fantaincredibili ultraimpossibili iperterribili irresistibili!!!

    "... a quell'età ... bastava un dito per fare la pace ..."
    fotine

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    non ho ben capito cosa sia per te la tab. "campionato", cmq per il resto può essere... avresti ("..." per eventuali campi aggiuntivi):

    codice:
    SQUADRE: id, nome, ...
    INCONTRO: id, squadra_casa, squadra_ospite, giornata, punti_casa, punti_ospite, ...
    ed eventualmente una tabella GIORNATE: non userei solo la "data" perchè potrebbe esserci per esempio un rinvio... magari un campo "annotazioni" per riportare un fatto del genere (es.: "rinviata al ../..") o uno più evoluto con varie alternative o dei flag (es.: campo "rinviata", campo "annullata", etc.).

  3. #3
    Originariamente inviato da eiyen
    non ho ben capito cosa sia per te la tab. "campionato",
    Per campionato intendo la categoria (under16 2012, under 18 2012, Prima Divisione 2012, Serie B ...etc etc...). Perchè la Società PincoPallinoVolley parteciperà a categorie di campionato differenti con atlete differenti (pur tenendo il nome della società come nome della squadra).
    Avrò quindi (sempre per esempio):
    PincoPallinoVolley che gioca il campionato U12 e U18
    AltraSocietàVolley che gioca l'U18 e la Prima Divisione
    VolleyAltraAncora che gioca con U12, U16, U18 e Serie B


    Originariamente inviato da eiyen
    cmq per il resto può essere... avresti ("..." per eventuali campi aggiuntivi):

    codice:
    SQUADRE: id, nome, ...
    INCONTRO: id, squadra_casa, squadra_ospite, giornata, punti_casa, punti_ospite, ...
    ed eventualmente una tabella GIORNATE: non userei solo la "data" perchè potrebbe esserci per esempio un rinvio... magari un campo "annotazioni" per riportare un fatto del genere (es.: "rinviata al ../..") o uno più evoluto con varie alternative o dei flag (es.: campo "rinviata", campo "annullata", etc.).
    Quindi leghi INCONTRO->giornata con GIORNATE? Giusto?

    E i punteggi come potrei gestirli?
    La pallavolo funziona così: per avere la vittoria si deve vincere 3 set su 5.
    Per vincere un set si devono fare 25 punti (poi c'è la casistica dei 2punti di scarto se si pareggia 24-24 e l'eventuale quinto set è al meglio dei 15 punti)
    Questi valori dovrò registrarli perchè in caso di pari punti di classifica si va a vedere la differenza set e poi anche la differenza punti.
    La classifica in generale si costruisce così:
    Prendi 3pt se vinci 3-0 oppure 3-1
    Prendi 2pt se vinci 3-2
    Prendi 1pt se perdi 3-2
    Prendi 0pt se perdi 3-0 o 3-1

    Mi chiedevo come potrei fare questi conti...

    La tabella
    INCONTRO: id, squadra_casa, squadra_ospite, giornata, punti_casa, punti_ospite, ...

    andrebbe quindi cambiata... tipo

    codice:
    INCONTRO: 
    id, 
    squadra_casa, 
    squadra_ospite, 
    giornata, 
    primo_set_punti_casa, 
    primo_set_punti_ospite,
    secondo_set_punti_casa, 
    secondo_set_punti_ospite,
    terzo_set_punti_casa, 
    terzo_set_punti_ospite,
    quarto_set_punti_casa, 
    quarto_set_punti_ospite,
    quinto_set_punti_casa, 
    quinto_set_punti_ospite.
    ...
    ...o è troppo complicato?

    Ci sono modi migliori?
    Fantasupermegafavolipermeramagicultra irresistibili
    4 10 30 100 1001 personaggi insuperabili fantaincredibili ultraimpossibili iperterribili irresistibili!!!

    "... a quell'età ... bastava un dito per fare la pace ..."
    fotine

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    in linea di massima secondo me va bene: essendoci max 5 set in tutto (possono essercene 3? in questo caso o setti un campo con il numero dei set, o si ricava da altri dati - es. se il torneo fosse femminile o altra condizione - o usi valori fittizi per i set non giocati) può andar bene... potresti impostare il tipo dei campi "punti_set_1_..." in vari modi, anche come "testo" in modo da aggiungere altre info e/o consentire altri tipi di valori (es.: "no"), avresti (a, b = squadre A e B, cioè casa e ospite):

    ...
    punti_set_1_a = 25
    punti_set_1_b = 21
    punti_set_2_a = 20
    punti_set_2_b = 25
    punti_set_3_a = 25
    punti_set_3_b = 22
    punti_set_4_a = 0
    punti_set_4_b = 0
    punti_set_5_a = 0
    punti_set_5_b = 0

    per 3 set giocati (oppure al posto di "0" metti "no", oppure è un caso che non ti riguarda)

    altra possibilità meno flessibile:
    set_1 = "25,21"
    set_2 = "20,25"
    e così via... ma è più complicato fare i report con le query

  5. #5
    Originariamente inviato da eiyen
    in linea di massima secondo me va bene: essendoci max 5 set in tutto (possono essercene 3?
    3 set ci sono in caso di vittoria schiacciante 3-0

    Altrimenti esistono altri tipi di campionati in cui la formula è giocare 3 set (sempre tutti e 3) e la classifica viene fatta assegnando 1pt per ogni set vinto.
    Questa opzione andrebbe gestita... ma mi pare quasi che venga fuori un gestionale a parte .. completamente differente.

    Originariamente inviato da eiyen
    in questo caso o setti un campo con il numero dei set, o si ricava da altri dati - es. se il torneo fosse femminile o altra condizione - o usi valori fittizi per i set non giocati) può andar bene... potresti impostare il tipo dei campi "punti_set_1_..." in vari modi, anche come "testo" in modo da aggiungere altre info e/o consentire altri tipi di valori (es.: "no"), avresti (a, b = squadre A e B, cioè casa e ospite):

    ...
    punti_set_1_a = 25
    punti_set_1_b = 21
    punti_set_2_a = 20
    punti_set_2_b = 25
    punti_set_3_a = 25
    punti_set_3_b = 22
    punti_set_4_a = 0
    punti_set_4_b = 0
    punti_set_5_a = 0
    punti_set_5_b = 0

    per 3 set giocati (oppure al posto di "0" metti "no", oppure è un caso che non ti riguarda)
    Il punteggio che mi scrivi tu nell'esempio (so che era un esempio... non è per fare il pignolo) dovrebbe restituirmi un avviso del tipo "Hey inseritore di dati!! Attento! questo punteggio non è valido..." perchè la squadra A sta 2-1 e va in conflitto con la nostra ipotesi che si gioca al meglio dei 5 set.
    Comunque chi inserisce i dati (io o chi per me) è sempre a conoscenza di come si inserisce un punteggio...

    Infine, e poi penso di poter iniziare a buttare giù qualcosa (e mi farò di nuovo vivo ehehe), come calcoleresti i punteggi della classifica?
    Per esempio alla decima giornata come faccio a sapere che la squadra PincoPallinoVolley ha fatto 13pt in classifica?
    Ci vuole una tabella a parte? Dei campi aggiuntivi (magari in GIORNATA)? Si calcola con dei report al volo?
    Fantasupermegafavolipermeramagicultra irresistibili
    4 10 30 100 1001 personaggi insuperabili fantaincredibili ultraimpossibili iperterribili irresistibili!!!

    "... a quell'età ... bastava un dito per fare la pace ..."
    fotine

  6. #6
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    vedi tu per la questione set/punti... se registri cmq per ogni partita i punti di ogni squadra per ogni set il resto si calcola con report via query, p.es.:

    squadra con id = 1, partite in casa:
    codice:
    SELECT
      count(*) as vinteincasa, 
      (
        SIGN(punti_set_1_a-punti_set_1_b)
        +
        SIGN(punti_set_2_a-punti_set_2_b)
        +
        ...
      ) AS conteggioset
    FROM incontri
    WHERE (
        squadra_casa = 1
      AND
        conteggioset>0
    )
    conto i record della tabella in cui la squadra compare come "in casa", conteggiando i set vinti e prendendo le gare in cui il valore è positivo (es.: 25-21, 25-24, 23-25, 25-21, 0-0 se il quinto non si disputa) porterebbe ad avere conteggioset=(1+1-1+1)=3-1=2 (set di differenza)

    e così via...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.