• User

    Gestione tabelle mysql, come fare?

    Salve a tutti,
    ho un lavoro di archiviazione dati in DB ma non so come impostare il lavoro....
    In pratica tramite una form un utente può inserire i dati necessari che verrano caricati sul DB...Fino a qui tutto ok, il problema si pone dal fatto che l'utente ha la necessità di inserire un numero indefinito di nuovi campi differenti dagli altri utenti...mi spiego meglio...
    i primi tre campi dellla tabella sono uguali per tutti (es id, nome, cognome), gli altri campi invece variarebbero da utente ad utente...

    Voi come impostereste questo progetto?
    Una tabella unica con i campi "fissi" e la creazione di una tabella ad "hoc" per ogni utente? Il rischio è di trovarsi un numero imprecisato di tabelle (almeno quanto il numero di utenti)...Ovviamente l'output della query dovrebbe prevedere i dati della tabella fissa più i dati della tabella creata dall'utente....

    Grazie a tutti quelli che mi sapranno dare un aiuto...


  • ModSenior

    Cia Dejangol e benvenuto nel Forum GT.
    Ti suggerisco una strada non proprio facilissima ma che ha tutta la flessibilità di cui hai bisogno.

    Prevedi un numero massimo di campi personalizzabili
    Esempio: massimo 10 campi

    Li crei tutti nominandoli in maniera generica
    Esempio: filler1, filler2, filler3 ... etc etc fino a filler10.

    Ora immagino che tu abbia anche una tabella di utenti identificabili da una chiave primaria univoca (un id) che ti permette di identificare ogni utente della tua applicazione.

    Bene... la versione rudimentale del sistema che ti suggerisco e' questa.
    Crei una tabella di appoggio costituita cosi':
    IdCampo | IdUtente | Filler | Descrizione

    Dove

    • IdCampo e' la chiave primaria della tua tabella di appoggio
    • IdUtente e' la foreign key dell'identificativo utente della tua tabella utenti
    • Filler e' un numero da 1 a 10 in modo da corrispondere 1:1 con i campi della tua tabella
    • Descrizione e' il nome del campo personalizzato per ogni utente

    Ora a questa versione rudimentale, se vuoi, puoi aggiungere altri campi alla tabella di appoggio per memorizzare ad esempio informazioni come il tipo di campo, le dimensioni minima e massima, le regexp per la validazione, il fatto che il campo sia o meno obbligatorio.


  • User

    Inanzittutto grazie per la celere risposta...
    Non mi è ancora chiarissimo il procedimento che mi hai esplicato, conosci per caso un link dove ci sia un esempio pratico che potri studiarmi?

    Grazie ancora per l'aiuto...


  • ModSenior

    Ciao ti ho risposto in base alla mia esperienza e non mi sono appoggiato a link esterni. In allegato trovi un esempio di cosa ti dicevo.