Consigli per un neofita: come impostereste un database simile a quello di facebook?

Luca Darken Coraggio

Nuovo Utente
28 Apr 2013
6
0
0
Salve, sono al mio primo progetto basato su database e siccome molte cose le ho imparato da autodidatta, vorrei un parere da chi se ne intende di più. Una mezza idea ce l'ho su come strutturarlo, ma vorrei capire se è esatta.
Fermo restando che facebook utilizza un sistema chiamato cassandra, realizzando il tutto con sistemi per noi comuni mortali (leggasi utilizzo di mysql), come bisognerebbe impostare un DB che abbia 1)utenti 2)messaggi 3) Likes dei messaggi ?

Io ho pensato semplciemente a questa struttura, potete darmi un'opinione? thx

databs1.png
 
Ciao, la tabella messaggi credo che contenga dei messaggi con un mittente e un destinatario..Ti manca uno dei due in questo caso.
 
ci vorrebbero dei campi per la data di pubblicazione, lo stato (pubblico o eliminato, o magari visibile solo a determinati gruppi), creare una tabella per i gruppi, nella tabella utenti bisognerebbe salvare anche la email e la password criptata, oltre che alla secret key.

Queste le cose che mi vengono in mente su due piedi
 
ci vorrebbero dei campi per la data di pubblicazione, lo stato (pubblico o eliminato, o magari visibile solo a determinati gruppi), creare una tabella per i gruppi, nella tabella utenti bisognerebbe salvare anche la email e la password criptata, oltre che alla secret key.

Queste le cose che mi vengono in mente su due piedi

Bhe si ovvio che ci volgiono queste cose, io volevo solo un'opinione su come dividere le tabelle, poi ovvio che andrebbero aggiunti altri campi, ma per fare l'esempio ho ridotto tutto al minimo..
proprio perchè non ho dimestichezza, non sono sicuro che ad esempio si debba creare una tabella in cui mescolare tutti i messaggi di tutti gli utenti a mo' di calderone..

Ad esempio, qualche tempo fa avrei immaginato una struttura in cui per ciascun utente c'era una tabella messaggi annessa in cui memorizzare tutti i messaggi di quello specifico utente. Poi da quel che ho capito questo sarebbe un metodo inesatto perchè finirei col creare davvero una miriade di tabelle e ciò sarebbe deleterio per la velocità. Confermate?
 
La tabella serve a contenere un certo tipo di dato, non i dati comuni ad un determinato utente/fattore.

Se ti basi sulla mia affermazione riuscirai a creare il database nel modo corretto.

La tabella sarà "messaggi", con la colonna "utente".
Non "utente" con la colonna... ecco non mi viene neanche in mente come organizzare un database in modo sbagliato xD
 

Discussioni simili