Possibilita di avere un album per ogni utente

ciao ragazzi

nel mio sito ho delle gallerie fotografiche, vorrei mettere la possibilita di aggiungere le varie foto al proprio album dei preferiti agli utenti iscritti.

Il probleme è come fare?

Mica posso creare una tabella per ogni utente con all'interno l' id delle foto preferite

Cerco consigli!!

inviato 9 anni fa
pazzomania
X 0 X

basta fare una relazione molti-a-molti fra le la tabella degli utenti e la tabella delle foto:

crei una tabella di associazione "foto_preferite" con l'id della foto e anche l'id dell'utente

 :bye:

risposto 9 anni fa
Xscratch
X 0 X

ok...

E se invece creassi... nella tabella dove ci sono gli utenti iscritti, un campo foto_preferite con all'interno 1 2 3 4 5 6 7 8 9 poi con php estraggo questo record, divido le id in base algli " " (spazi). Potrebbe essere una soluzione?

risposto 9 anni fa
pazzomania
X 0 X

certo, tutto si può fare...ma è concettualmente sbagliato:

le basilari norme di progettazione dei DB dicono che:

1) ogni campo deve contenere un solo dato di un solo tipo

2) un elenco di foto (quale è un l'album delle foto preferite) non è un'informazione strettamente inerente alla foto e nemmeno all'utente, pertanto andrebbe salvato in una tabella a parte

se quello che ti preoccupa è la difficoltà di implementazione...beh...non è poi molto più complicato: si fa una insert in una tabella piuttosto che in un'altra... pensa poi alla difficoltà di gestione, cioè a quello che devi fare ad esempio per eliminare una foto, sia nel caso che l'utente non la ritenga più così bella da tenerla fra le preferite sia nel caso tu dovessi eliminare la foto principale (quindi eliminare il numero nel campo per mantenere l'integrità referenziale)

Se ancora questo non bastasse e ti stessi preoccupando delle performance ti assicuro che, anche con un una stringa non troppo lunga, la funzione explode() risulterà più lenta del fare una semplice query alla tabella giusta

spero di averti convinto a scegliere la via apparentemente più complicata certamente migliore.

 :bye:

risposto 9 anni fa
Xscratch
X 0 X

mi hai convinto  O0

risposto 9 anni fa
pazzomania
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda