• User Attivo

    Mysql tabella con 6500 colonne

    Ho bisogno da voi un consiglio su come gestire questa cosa.
    Il mio sito tratta quiz della patente e io devo registrare sul database se l'utente ha mai risposto alla domanda o meno e come (NULL, 0, 1).
    Il problema è che ci sono circa 6500 quiz!
    Avevo pensato di creare una colonna ID utente e 6500 colonne con i numeri domanda e riempire con
    NULL per domanda mai affrontate
    0 per domande corrette
    1 per domande sbagliate
    Secondo voi la query risulta lenta? C'è un modo più elegante e performante per affrontare la cosa?


  • User Attivo

    Il limite teorico e generico per le colonne di un DB è 4096, che scende facilmente col verificarsi di determinate condizioni. Quindi NON PUOI avere 6500 colonne.
    Ed in ogni caso sarebbe il modo sbagliato di procedere.
    Per ogni utente, devi memorizzare un campo di tipo MEDIUMTEXT o LONGTEXT, contenente dati serializzati che puoi facilmente importare in un oggetto, come il formato JSON, oppure il serialized.


  • User Attivo

    Ok. Alla fine ho creato il campo longtext e ho archiviato gli id in questa maniera -1-2-3-4-5-6-7-8-9 e li gestisco con explode("-", $query);