Newsgroup: it.comp.www.php
Titolo: Condivisione contenuto tabella tra più utenti

Salve,
 
sono interessato a capire come concettualmente si riescano a gestire due 
diversi tipi di condivisione dei dati in modo ad esempio che gli utenti 
"A", "B" e "C" vedano/modifichino i loro dati e l'utente "D" 
veda/modifichi solo i suoi, di seguito un breve riassunto
 
tabella user 	 -> contiene tutti gli utenti
tabella crew	 -> contiene il "match" tra gli utenti
tabella blacklist-> contiene la lista degli utenti bloccati
tabella product  -> contiene la lista dei prodotti
 
Nella tabella crew l'utente "A" dovrà ad esempio essere associato 
all'utente "B" per avere gli stessi diritti sul prodotto "Y" quindi 
dovrò inserire due volte la stessa FK verso la tabella user?
 
Nel caso dell'utente "D" entrambe le Fk punterebbero sempre su se stesso...
 
Dovrò avere la stessa logica delle due FK che puntano verso la tabella 
user anche per la tabella blacklist.
 
Infine nella tabella product dovrò inserire una FK verso crew ed una 
verso la tabella blacklist.
 
Ringrazio in anticipo per gli eventuali consigli! :)
 
Saluti!
GabrieleMax

Che cos'è il match tra gli utenti?
 
Non ti conviene mettere un campo nella tabella user per marcare l'utente bannato? Volendo anche una data che indichi la fine dei ban temporanei (se utile)?

 
 
Potrebbe capitare di mettere nella black list più di un utente ed anche 
per sempre (pensiamo ad esempio a quello che accade nei social network 
quando si bloccano numerosi profili).
 
Se dovessi mettere tutti gli utenti bloccati in un unico campo nella 
tabella user potrei trovarmi anche a mettere 200 utenti e diventerebbe 
troppo "popolato" mentre in una specifica tabella blacklist ogni utente 
bloccato avrebbe un proprio record ed il carico dovrebbe essere più 
leggero, ovviamente le mie sono solo delle ipotesi!
 
Saluti.
GabrieleMax


Non ho detto questo. Ti ho detto di aggiungere un campo per marcare gli utenti bannati.
Per farti capire ti faccio un esempio.
 
tab utenti
id, nome,…,bannato
1, GabrieleMax,…,no
2,Serni,…,no
3,Faust,…,si
 

dovrò inserire due volte la stessa FK verso la tabella user?
 
Un utente associato a un altro utente? E' una brutta ricetta. Che vuoi fare
esattamente? Avere un prodotto che ha da 0 a N utenti associati? Creane una
tabella crew (id_user, id_prodotto).
 
Se c'è un blocco su base (user, product) evidentemente va in crew, ed avrai
una associazione basate sul colore:
 
	id_user, id_prodotto, colore	(black / white).
 
Ovviamente (id_user, id_prodotto) rimane primary key.
 
Leonardo SE&O
-- 
 
"You all presumably know why" :-) :-(

 3,Faust,…,si
 
Ti ringranzio ancora per le ulteriori delucidazioni, quello che non 
capivo è come relazionare i blocchi/ban tra i diversi utenti, partiamo 
dall'esempio che hai fatto te.
 
Nella tabella user ho tutti gli utenti con le loro credenziali di 
accesso e fin qui ci siamo però il ban dovrebbe essere tra utenti, non 
si tratta di un ban generale come quello che potrebbe impostare un admin 
per vietare ad un user di accedere ad esempio in un forum!
 
Io GabrieleMax dovrei inserire il ban per Serni o l'allowed per Faust 
per questo avevo ipotizzato una tabella specifica esterna dalla tabella 
user per gestire le relazioni tra utenti.
 
Saluti!
GabrieleMax


Più che un ban vuoi gestire blocchi alle interazioni tra gli utenti. Allora sì, confermo, non puoi evitare la tabella nel mezzo.
 
blocchi_relazioni
id_utente_bloccante, id_utente_bloccato
1,2
 
Quindi prima di ogni azione di interazione ricerchi gli id_utente che svolge l'azione = all'id_utente_bloccato e l'id_destinatario = all'id_utente_bloccante, se ritorna l'insieme vuoto procedi, altrimenti blocchi.
 
Puoi aggiungere un campo per indicare il tipo di limitazione, ad es: vis. profilo, prodotti, commenti, invio messaggi privati, ecc.…

 Leonardo SE&O
 
Saluti.
GabrieleMax

 Puoi aggiungere un campo per indicare il tipo di limitazione, ad es: vis. profilo, prodotti, commenti, invio messaggi privati, ecc.… >
 
Ok, proverò il tutto a breve intanto ti ringrazio per le dritte! :)
 
Saluti!
GabrieleMax

facciano parte della crew e quali vadano bloccati.
 
Allora hai una situazione del tipo
 
	crew
		id_user		utente principale
		id_user2	utente autorizzato (o no)
		colore		black/white (default white)
 
	pantry
		id_user		proprietario dispensa
		id_prodotto	prodotto
	-- la gniappe --
		[id_user2]	utente che lo ha messo?
		important	può essere tolto solo dall'
				utente id_user o da id_user2
		colore		black/white (default white)
 
Leonardo


 Leonardo
 
Saluti.
GabrieleMax