Forum->Flatnux->gestione tabelle in flatnux next -> chiave primaria
  
Benvenuto Sconosciuto Registrati Aiuto383 Utenti

Utente Messaggio


johndorazio

0 Livello 0 10

levellevellevellevellevellevellevellevellevellevel
profile mail home
Sabato 20 Agosto 2011 - 05:35

gestione tabelle in flatnux next -> chiave primaria:
Chiedo se si può aggiungere un campo ID univoco numerico alla tabella utenti da utilizzare come chiave primaria. Ciò faciliterebbe molto la gestione del "flat-database" similmente a qualsiasi altro database di tipo access o sql o mysql.

Ricordo infatti che nel mysql c'è la chiave primaria che è un ID univoco (che può essere di tipo INT oppure di tipo GUID o altro simile) generato automaticamente. Poi ci sono le chiavi "UNIQUE", non primarie. Direi che il "nome utente" non dovrebbe essere la chiave primaria della tabella, se si vuole però che sia chiave unica si può impostare come "UNIQUE".

Chiaro che questa distinzione è valida nel mysql. Le funzioni di XML-DB di flatnux non contemplano questa differenza ancora. Credo che sia utile implementare queste distinzioni onde avere una gestione database / flat-database più regolare. Mi trovo spesso molto limitato nella mia programmazione a causa di questi limiti...

Nel php ci sono anche funzioni native per la generazione degli ID univoci.
Per esempio, "uniqid" (http://php.net/manual/en/function.uniqid.php).
Qui ci sono alcune possibilità: http://phpgoogle.blogspot.com/2007/08/four-ways-to-generate-unique-id-by-php.html

Mentre i GUID sono sicuri che sono unici, sono però un po' ingombranti. La cosa più semplice e efficace a mio parere per piccole applicazioni sono gli ID di tipo INT AUTO-INCREMENT.

____________________________
"The whole of science is nothing more than a refinement of everyday thinking." (Albert Einstein)



speleoalex

0 Livello 10 10

levellevellevellevellevellevellevellevellevellevel
profile mail
Lunedì 22 Agosto 2011 - 09:07

Re: gestione tabelle in flatnux next -> chiave primaria:
L'utente è attualmente messo come chiave primaria principalmente per questioni di performance.
Infatti con un xmldatabase configurato normalmente il record viene trovato al primo tentativo utilizzando il percorso del file che ha lo stesso nome della chiave primaria.
In caso contrario dovrebbe eseguire una query che a lato pratico leggerebbe tutti i files presenti nella cartella fn_users fino a trovare il corretto.




johndorazio

0 Livello 0 10

levellevellevellevellevellevellevellevellevellevel
profile mail home
Venerdì 02 Settembre 2011 - 02:29

Re: gestione tabelle in flatnux next -> chiave primaria:
Capisco... Sarà uno dei limiti dei flat-database per ora... Non si può pretendere la performance che si può avere dal mysql...

Forse con il tempo si può comunque migliorare questo aspetto, per esempio visto che il nome del file per ogni record è la chiave primaria, si potrebbe nominare il file con un ID di tipo INT AUTO-INCREMENT, e in questo modo non c'è bisogno di iterare tutti i files... Il nome utente estratto dal record può essere memorizzata in una variabile di sessione, oppure scritto nel cache... Sono alcune possibilità.

____________________________
"The whole of science is nothing more than a refinement of everyday thinking." (Albert Einstein)

 [1]