• User

    Consiglio progettazione database

    Buonasera a tutti. Vorrei rivolgere una domanda a chi ne sa più di me.
    Premetto che non sono un genio del database. Li ho sempre usati per siti o piccole cose, quindi non mi sono mai posta il problema delle prestazioni, o della manutenzione ecc.
    Questa volta sto pensando ad un uso più massivo e questi problemi iniziano a porsi.
    **
    Il progetto del servizio**
    Il sito php a cui sto pensando inserisce/preleva/manipola dati su un database mysql come funzione principale. In sè è molto semplice.
    Vorrei proporre il sito a più clienti in forma di servizio internet da utilizzare su un mio server.
    Per ogni cliente il form che riempie è lo stesso, quindi potrebbe teoricamente essere una sola tabella con le stesse colonne. Stessa struttura per tutti, stesso tipo di dati.
    Ogni cliente potrebbe fare anche 20.000 righe all'anno e, se provo a ipotizzare un vita del servizio di 5 anni, fanno 100.000 records a cliente.
    Quando poi il cliente farà un select, dovrà estrarre una tabella di 300 records, pescati fra tutti i dati accumulati negli anni (solo i suoi dati, di quel cliente che sta facendo il select).
    Sempre per dare dei numeri, ipotizzo di poter avere 20 clienti o spero anche di più. Massa totale di qualche milione di righe "uguali".
    Ho detto numeri a caso ma possibili, per darvi un'idea.

    Il progetto del database.
    Il massimo della comodità per me (idealmente) sarebbe far stare tutti i clienti in una sola tabella, inserendo una colonna in più che dice chi è il proprietario della singola riga registrata.
    Sarebbe comodo perchè se dovessi cambiare qualcosa della struttura della tabella (magari per migliorare il servizio o risolvere un problema), quando lo faccio una volta l'ho già fatto per tutti.
    Mi sembra però molto pesante per il server e per quando si fa una query, e poi mi pare più igienico tenere delle divisioni, perchè potrebbe capitare di dover fare manutenzione anche cliente per cliente. O un backup o... varie ed eventuali.

    La domanda
    Fare una tabella per ogni cliente può essere la giusta soluzione?
    Se questa ipotesi è buona: qualcuno sa se esista una funzionalità che tiene sincronizzate le strutture di un gruppo di tabelle in uno stesso database? (quindi che se faccio una modifica strutturale a una tabella viene riportata anche sulle altre tabelle?)

    Grazie!