Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    260

    [Mysql] Creare una tabella per ogni utente...

    Salve,

    Sto creando "tipo" un piccolo forum con php e mysql; Ho creato le seguenti tabelle nel database mysql:

    -Tabella registrati (nick, password)

    -Tabella discussioni (titolo, autori, risposte, testo, etc)

    -Tabelle personali per ogni utente (msg privati, statistiche personali, altri servizi personali)

    Creo "dinamicamente" una tabella per ogni utente perchè quest'ultimi dispongono di un pannello personale dovo possono gestire il loro profilo i privati e tanti altri servizi personali e quindi OCCUPANO MOLTE RIGHE della tabella...

    Secondo voi è corretto creare una tabella per ogni utente?
    Occupa molto spazio creare una tabella per ogni utente?
    Creare molte tabelle può rallentare il database?

    Ciao e grazie

  2. #2
    mah...secondo me è "inutile" creare una tabella per ogni utente...

    potresti creare una tabella unica con una colonna chiamate "utente"

    e li vai quando inserisci un record metti l'id dell'utente...

    ciauz

  3. #3
    eccome!! sati attento che sprechi tantissimo spazio!
    basta una sola tabella per gli utenti, ognuno contraddistinto dal suo ID e che contiene pure username e password oltre ai suoi dati.
    Poi ci sarà una tabella per i vari forum ed una per i post, ognuno col suo ID a cui far riferimento per cercare ad esempio tutti i post dello stesso forum.
    Come già evidenziato in altro post, prima di creare il database e le sue tabelle e campi è fondamentale NORMALIZZARE la sua struttura: in altre aprole il db lo si crea a tavolino, si creano le tabelle a matita,s i controlla se ci sono campi duplicati da evitare, campi inutili, le relazioni fra le tabelle e quindi SOLO dopo queste operazioni si scrive il db fisico.

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    260
    capisco, ma si puo fare una cosa del genere:

    |id|utente|password|msgprivati|
    |0|eros |0f4sd44s|ciao |
    |-|-------|---------|caro |
    |-|-------|--------|salve |
    |1|angy |0f4sed4s|sera |
    ....

    In pratica se ogni messaggio privato occupa una riga della colonna msgprivati, l'id univoco cambia "incrementa"....
    Come faccio poi a riconoscere i msgprivati dei eros e di angy??

    Datemi per favore qualche piccola delucidazione.

    Grazie

  5. #5
    2 tabelle:

    tabella: utenti
    id | username | password


    tabella: mprivati
    id | testo | from | to

    in from metti l'id dell'utente che ha inviato il messaggio e in to quello che lo deve ricevere


    ciauz

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    260
    grazie sei stato molto chiaro, però adesso faccio una ipotesi, se la tabella messaggi privati venisse riempita "per assurdo" con oltre 500000 msg di utenti diversi, nel momento in cui l'utente cerca i propri messaggi non è che potrebbe richiedere molto tempo di elaborazione e/o si possono avere dei problemi con il database?

    Ciao e grazie

  7. #7
    ovvio...più record ci saranno...più il tempo di lettura aumenta ma di un tempo probabilmente quasi impercettibile

    cmq... ci sano dei "trucchi"... cioè.. ad esempio nella tabella mprivati il campo to lo indicizzi...
    in questo modo hai un guadagno di tempo in fase di lettura (ma un lieve ritardo in fase di inserimento)... ti conviene leggerti qualche guida... per capire meglio le possibilità di mysql...

    ciauzz

  8. #8
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    260
    ok grazie mille per la delucidazione

    Ciao

  9. #9
    Con 4000 campi nella tabella quant'è il rallentamento?

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.