Database scacchistico

di il
25 risposte

Database scacchistico

Stò cercando di creare un Database scacchistico dove inserire i tornei, i giocatori, le partite, i risultati, le classifiche ecc., il mio problema è che ho inserito tornei diversi, e non ho idea di come fare per creare una maschera che mi visualizza la classifica del torneo che io scelgo da una casella combinata. Grazie per l'aiuto.

25 Risposte

  • Re: Database scacchistico

    Siamo nella sezione "Progettazione database".
    Se sei ancora nella fase di progettazione, normalizzazione tabelle è giusto tu abbia postato qui, ma devi mostrare ciò che hai fatto finora.
    Se pensi che il database sia già normalizzato e hai un problema specifico dell'applicazione che usi (Access, MySQL...), allora devi postare nella sezione dedicata all'applicazione.
  • Re: Database scacchistico

    Ciao osvaldo il database funziona se io inserisco un solo torneo e voglio vedere la classifica, ma se io voglio inserire altri tornei non ho idea come fare per vedere la specifica classifica.
    Ho creato le tabelle "partecipanti", "Tornei", "Partite" con le rispettive maschere per l'inserimento dei dati, poi ho una query per il calcolo della classifica e per un torneo non ho problemi ma se io inserisco i dati di più tornei non ho idea di come fare per dire ad access di farmi vedere la classifica di ogni torneo. Spero di aver reso l'idea di quello che vorrei fare.
  • Re: Database scacchistico

    serafino ha scritto:


    Spero di aver reso l'idea
    Per niente. È necessaria una descrizione dettagliata di:
    - nomi propri di tutte le tabelle
    - nomi propri di tutti i loro campi con indicazione della chiave primaria
    - le relazioni
    Questi sono i requisiti minimi da affrontare nella sezione "Progettazione database". Se usi Access, in alternativa puoi postare una immagine della Finestra Relazioni.
    Poi rispiega tutto il problema usando i nomi propri.

    Per problemi riguardanti maschere, query ecc...devi postare la discussione nella sezione relativa all'applicazione che usi (ma anche lì devi essere chiaro esponendo i nomi propri di tutto...).
  • Re: Database scacchistico

    Ciao Osvaldo, ora che sono andato in pensione posso riprendere in mano il mio progetto, nel mio database ho 3 tabelle : la tabella TORNEI; la tabella PARTECIPANTI e la tabella INCONTRI.
    Nella tabella TORNEI ho i campi : IDtorneo (numeraz.Aut.); Numero Torneo (testo breve); Nome torneo (testo breve); Data inizio torneo (Data/ora); Numero partecipanti (numerico); Terminato (Si/no); Note (testo lungo); Data fine torneo (Data/ora); IDincontro (numerico); IDgiornata (numerico).
    Nella tabella PARTECIPANTI ho questi campi : IDpartecipante (numeraz. aut.); Cod_giocatore (testo breve); Giocatore (testo breve); punteggio ELO (numerico); IDtorneo (numerico).
    Nella tabella INCONTRI ho i campi : IDincontro (numeraz. aut.); partita numero (testo breve); GiocatoreA (testo breve); GiocatoreB (testo breve); RisultatoA (testo breve); RisultatoB (testo breve); Data inizio partita (Data/ora); Data fine partita (Data/ora); Partita finita ? (SI/NO); Giornata (testo breve); Torneo (testo breve); Data ultimo aggiornamento (Data/ora); IDgiornata (numerico); IDtorneo (numerico).
    Uso access ma non sò come postare la foto delle relazioni appena riesco la posto intanto provo a spiegarla qui:
    La tabella TORNEI ha una relazione con la tabella INCONTRI 1 a molti, mentre la tabella INCONTRI ha una relazione con la tabella GIORNATA 1 a molti.
    Queste sono le 3 tabelle che uso, dimmi se per quanto riguarda le tabelle, i loro campi e le relazioni sono corrette poi ti scriverò il seguito del Database. Grazie per l'aiuto. Ciao
  • Re: Database scacchistico

    Se posti il file, su un sito di condivisione tipo DropBox o altro, forse è più semplice e voloce farti vedere come dovrebbe cambiare la struttura, sfruttando già quello che hai fatto.
  • Re: Database scacchistico

    Giusto come nota a margine: la progettazione di un database RELAZIONARE NON DIPENDE dal software utilizzato (Access o quant'altro)

    MA

    1) dall'avere chiaro il modello dei dati,
    2) dal seguire le regola di progettazione

    il punto 1) non e' miracoloso, lo si risolve con CARTA E MATITA e con una lista iniziale di possibili 'interrogazioni'
    Altamente consigliato (diciamo al 99.99%) saper realizzare un modello ER (Entita' Relazione).

    il punto 2) si risolve STUDIANDO teoria relazionale dei dati.
    NON SERVE una laurea in Astrofisica Avanzata Per Mondi Alieni Basta un LIBRO e buona volonta'

    Perche' tutto questo?
    Perche' il 99% delle 'castronate' che fa chi progetta database senza le opportune conoscenze di base sono evitabili leggendo il primo o i primi 2 capitoli di qualunque libro sull'argomento.
    E queste 'castronate' vengono fatte il 99% delle volte
  • Re: Database scacchistico

    Proviamo ad analizzare la struttura del DB che hai proposto.

    Nella tabella Torneo non mi è chiaro il significato/uso di queste colonne:
    • Numero torneo: a cosa serve visto che hai già un ID numerico e una descrizione? E' un identificativo? Se si, a che serve l'ID autogenerato? In ogni caso è un po' fuorviante che la colonna si chiami "Numero" e poi contenga un dato di tipo testo
    • DataFine e Terminato: servono davvero entrambi? Così ad occhio credo che si possa dire che se un torneo possiede una data di fine valida, è terminato. Se la data è null, allora ancora non è terminato. A che serve la colonna "terminato"?
    • ID Incontro + ID Giornata: Sono proprietà di un torneo? Non sono esperto di scacchi, però mi sembra tanto che siano due colonne che servono per indicare gli incontri (e la giornata) che si svolgono all'interno di un torneo. Se così fose, allora dovresti avere un'apposita tabella

    Mi fermo qui perchè ho un dubbio: non ho capito nulla io, oppure le mie osservazioni sono corrette?

    Nel primo caso, meglio se spieghi più in dettaglio cosa si intenda per Torneo, non tutti siamo esperti di scacchi per capirlo al volo.

    Nel secondo caso, invece, dovrebbe bastarti come esempio per capire il motivo che ci spinge a dirti di studiare prima di imbarcarti nella struttura del database. Se così fosse, allora procedi anche tu per step:
    • Studia i concetti base di un DB relazionale (entità, proprietà, relazioni, forme normali)
    • Prova ad applicare tali concetti al tuo esempio... Nel caso di dubbi, posta (e spiega) il singolo dubbio che hai così vedremo di aiutarti
  • Re: Database scacchistico

    migliorabile ha scritto:


    Giusto come nota a margine: la progettazione di un database RELAZIONARE NON DIPENDE dal software utilizzato (Access o quant'altro)

    MA

    1) dall'avere chiaro il modello dei dati,
    2) dal seguire le regola di progettazione

    il punto 1) non e' miracoloso, lo si risolve con CARTA E MATITA e con una lista iniziale di possibili 'interrogazioni'
    Altamente consigliato (diciamo al 99.99%) saper realizzare un modello ER (Entita' Relazione).

    il punto 2) si risolve STUDIANDO teoria relazionale dei dati.
    NON SERVE una laurea in Astrofisica Avanzata Per Mondi Alieni Basta un LIBRO e buona volonta'

    Perche' tutto questo?
    Perche' il 99% delle 'castronate' che fa chi progetta database senza le opportune conoscenze di base sono evitabili leggendo il primo o i primi 2 capitoli di qualunque libro sull'argomento.
    E queste 'castronate' vengono fatte il 99% delle volte
    Grazie migliorabile per il consiglio e lo metterò in pratica meglio, ma anche se, sicuramente, il Database è migliorabile dal punto di vista della struttura, funziona se inserisco le partite di un singolo torneo, il mio problema è che vorrei inserire partite di vari tornei e poi scegliere la classifica del torneo che ho scelto e questo francamente sui libri che ho non esiste, è per questo che ho scritto qui perchè sicuramente in questo Forum trovo persone come te più capaci del sottoscritto.
    Forse mi puoi consigliare un buon libro di VBA.
    Ciao e grazie.
  • Re: Database scacchistico

    PiGi78 ha scritto:


    Proviamo ad analizzare la struttura del DB che hai proposto.

    Nella tabella Torneo non mi è chiaro il significato/uso di queste colonne:
    • Numero torneo: a cosa serve visto che hai già un ID numerico e una descrizione? E' un identificativo? Se si, a che serve l'ID autogenerato? In ogni caso è un po' fuorviante che la colonna si chiami "Numero" e poi contenga un dato di tipo testo
    • DataFine e Terminato: servono davvero entrambi? Così ad occhio credo che si possa dire che se un torneo possiede una data di fine valida, è terminato. Se la data è null, allora ancora non è terminato. A che serve la colonna "terminato"?
    • ID Incontro + ID Giornata: Sono proprietà di un torneo? Non sono esperto di scacchi, però mi sembra tanto che siano due colonne che servono per indicare gli incontri (e la giornata) che si svolgono all'interno di un torneo. Se così fose, allora dovresti avere un'apposita tabella

    Mi fermo qui perchè ho un dubbio: non ho capito nulla io, oppure le mie osservazioni sono corrette?

    Nel primo caso, meglio se spieghi più in dettaglio cosa si intenda per Torneo, non tutti siamo esperti di scacchi per capirlo al volo.

    Nel secondo caso, invece, dovrebbe bastarti come esempio per capire il motivo che ci spinge a dirti di studiare prima di imbarcarti nella struttura del database. Se così fosse, allora procedi anche tu per step:
    • Studia i concetti base di un DB relazionale (entità, proprietà, relazioni, forme normali)
    • Prova ad applicare tali concetti al tuo esempio... Nel caso di dubbi, posta (e spiega) il singolo dubbio che hai così vedremo di aiutarti
    Ciao PiGi78 per la risposta.
    Nel primo caso un torneo negli scacchi è come il campionato di calcio, ci sono le giornate e le partite.
    Nella tabella "Torneo" il numero del torneo sarebbe il nome del torneo, ho scritto male io, per esempio: Torneo XL; Torneo LI; Torneo XLVIII ecc. ecco perchè è un campo testo.
    Per quanto riguarda il campo "Terminato" io ho 2 Maschere : 1. Tornei in corso e 2. Tornei terminati, la colonna Terminato mi serve solo per vedere nella Maschera "Tornei terminati" i tornei che sono terminati.
    IDincontro e IDgiornata fanno parte dello stesso Torneo e sono inseriti entrambi nella tabella Incontri.
    Il Database, anche se strutturalmente è migliorabile, funziona ma solo se inserisco gli incontri di un solo torneo, ma io vorrei poter inserire partite di più tornei e poi, tramite una maschera con una casella combinata, scegliere il torneo e creare la classifica del torneo scelto. Questo purtroppo non l'ho trovato sui libri che io ho e nemmeno in rete qualche esempio , per questo ho scritto su questo Forum perchè c'è gente molto esperta.
    Ciao e mille grazie.
  • Re: Database scacchistico

    Ripeto, se posti il file, su un sito di condivisione tipo DropBox o altro, forse è più semplice e voloce farti vedere come dovrebbe cambiare la struttura, che da quello che hai scritto non sembra corretta, e farti vedere come è possibile fare quello che chiedi, sfruttando già quello che hai fatto.
  • Re: Database scacchistico

    serafino ha scritto:


    nel mio database ho 3 tabelle : la tabella TORNEI; la tabella PARTECIPANTI e la tabella INCONTRI.
    Nella tabella TORNEI ho i campi : IDtorneo (numeraz.Aut.); Numero Torneo (testo breve); Nome torneo (testo breve); Data inizio torneo (Data/ora); Numero partecipanti (numerico); Terminato (Si/no); Note (testo lungo); Data fine torneo (Data/ora); IDincontro (numerico); IDgiornata (numerico).
    Nella tabella PARTECIPANTI ho questi campi : IDpartecipante (numeraz. aut.); Cod_giocatore (testo breve); Giocatore (testo breve); punteggio ELO (numerico); IDtorneo (numerico).
    Nella tabella INCONTRI ho i campi : IDincontro (numeraz. aut.); partita numero (testo breve); GiocatoreA (testo breve); GiocatoreB (testo breve); RisultatoA (testo breve); RisultatoB (testo breve); Data inizio partita (Data/ora); Data fine partita (Data/ora); Partita finita ? (SI/NO); Giornata (testo breve); Torneo (testo breve); Data ultimo aggiornamento (Data/ora); IDgiornata (numerico); IDtorneo (numerico).
    Uso access ma non sò come postare la foto delle relazioni appena riesco la posto intanto provo a spiegarla qui:
    La tabella TORNEI ha una relazione con la tabella INCONTRI 1 a molti, mentre la tabella INCONTRI ha una relazione con la tabella GIORNATA 1 a molti.
    Queste sono le 3 tabelle che uso, dimmi se per quanto riguarda le tabelle, i loro campi e le relazioni sono corrette poi ti scriverò il seguito del Database. Grazie per l'aiuto. Ciao
    Per me la struttura tabelle dovrebbe essere questa:

    Tornei
    IDTorneo (PK)
    NumeroTorneo
    NomeTorneo
    DataInizio
    DataFine

    Giocatori
    IDGiocatore (PK)
    Cognome
    Nome
    ...il campo PunteggioELO...non capisco cosa sia

    Incontri
    IDIncontro (PK)
    TimeInizio (con il formato completo Data/Ora)
    TimeFine (con il formato completo Data/Ora)
    IDGiocatoreA (FK)
    IDGiocatoreB (FK)
    Risultato (o Vincitore)
    IDTorneo (FK)

    Relazioni:
    Tornei.IDTorneo uno-a-molti Incontri.IDTorneo
    Giocatori.IDGiocatore uno-a-molti Incontri.IDGiocatoreA
    Giocatori.IDGiocatore uno-a-molti Incontri.IDGiocatoreB
  • Re: Database scacchistico

    Stifone ha scritto:


    Ripeto, se posti il file, su un sito di condivisione tipo DropBox o altro, forse è più semplice e voloce farti vedere come dovrebbe cambiare la struttura, che da quello che hai scritto non sembra corretta, e farti vedere come è possibile fare quello che chiedi, sfruttando già quello che hai fatto.
    Ciao, grazie per la risposta, se lo posto su oneDrive và bene ?

    Serafino
  • Re: Database scacchistico

    Stifone ha scritto:


    se posti il file, su un sito di condivisione tipo DropBox o altro, forse è più semplice e voloce

    serafino ha scritto:


    Ciao, grazie per la risposta, se lo posto su oneDrive và bene ?
    Il forum è pensato per scambiarsi problematiche e risolverle ragionandoci sopra. Occorre sforzarsi di descrivere tutto testualmente e rispondere altrettanto. Al massimo, se usi Access, potresti allegare una immagine della Finestra Relazioni.
  • Re: Database scacchistico

    Stifone ha scritto:


    Ripeto, se posti il file, su un sito di condivisione tipo DropBox o altro, forse è più semplice e voloce farti vedere come dovrebbe cambiare la struttura, che da quello che hai scritto non sembra corretta, e farti vedere come è possibile fare quello che chiedi, sfruttando già quello che hai fatto.
    Ho postato il file su DropBox, puoi darmi qualche consiglio ?
Devi accedere o registrarti per scrivere nel forum
25 risposte