PDA

View Full Version : Creare Gruppo con SQL


Floris
16-05-2007, 14:44
Allora la mia situazione è questa.
Ci sono dei gruppi. Un utente può appartenere ad uno o più gruppi.
Ora per memorizzare tale informazione in un database, voi come fareste???
Io ho pensato le seguenti soluzioni:
-una tabella per utente e una riga per gruppo (non mi sembra appropriata nè bella)
-utilizzare un varchar e memorizzare gli identificativi di gruppo divisi da un separatore
-utilizzare una tabella utenti e aggiungere una riga per utente col gruppo associato. Se un utente appartiene a x gruppi allora vi saranno x righe per quell'utente ognuna con associata un gruppo diverso (forse la più ovvia e logica)
-utilizzare un campo dato tipo una lista che permetta di aggiungere valori dinamicamente, ma nn credo esista una cosa del genere in SQL.
Aspetto un vostro consiglio.

0rph3n
16-05-2007, 14:56
tabella utenti -> id_utente, nome_utente, password
tabella gruppi -> id_gruppo, descrizione_gruppo
tabella relazioni_utente_gruppo -> id_relazione, id_utente, id_gruppo (non mi piacciono le chiavi multiple)

Gremo
18-05-2007, 03:30
tabella utenti -> id_utente, nome_utente, password
tabella gruppi -> id_gruppo, descrizione_gruppo
tabella relazioni_utente_gruppo -> id_relazione, id_utente, id_gruppo (non mi piacciono le chiavi multiple)

quoto in pieno, anche se id_relazione, se si prevede di non usarlo, può essere eliminato (non mi piacciono gli sprechi).

a te perchè non piaccono le chiavi multiple? :D

0rph3n
18-05-2007, 09:55
a te perchè non piaccono le chiavi multiple? :D

perchè mi sembra tutto più lineare e facile da ricordare.

stai facendo una query?
...bene, sai che in ogni tabella hai una sola chiave, di cui non hai problemi a ricordarti il nome perchè segui un tuo standard (la mia memoria è pessima, quindi devo ricorrere anche a questo).
devi aggiungere una relazione ad una tabella con chiave singola?
...bene, nella tabella figlia avrai solo un campo di chiave esterna per questa relazione.
devi aggiungere una relazione ad una tabella con chiave doppia?
...che schifo, anche nella tabella figlia ci dovranno essere entrambi i campi che dovranno fare da chiave esterna!
bla bla bla bla...


'iao

cionci
18-05-2007, 10:07
Ma quando dovrai usare il campo id_relazione ?
IMHO è un campo inutile...Quella relazione è tutta chiave...