Bei Freundesystem Freunde in Mysql Datenbank Speichern?

4 Antworten

Bei dem erstellen eines Datenbankprojektes gibt es einiges beachten. Zum ersten solltest Du Dir genau überlegen welche Entitäten du speichern willst. Es gibt Normalformen die Du Dir mal ansehen solltest. Es gibt 3 Normalformen die für dich ausschlaggebend sind.

1. Normalform

Jedes Attribut eines Datensatzes muss Atomar sein.

Beispiel: Schreibe nicht PLZ, Ort Und Straße in ein Attribut.

2. Normalform

Entspricht nur wenn es die erste Normalform einhält.

Es dürfen sich keine Daten wiederholen.

Stelle dir vor du hast eine Tabelle von Musiktiteln mit samt Band usw.

Lied:                                    Band:

Thunderstruck                    AC / DC

Hells Bells                          AC / DC

T.N.T                                  AC / DC

Highway to Hell                 AC / DC

____________________________________

AC / DC wiederholt sich zu oft und ist so mit unnötig.

Ideal wäre es eine eigene Band Tabelle anzulegen. Weil dort jede Band nur einmal drin steht. Somit hast du keine Wiederholungen.

https://de.wikipedia.org/wiki/Normalisierung_(Datenbank)

Soweit ich mich mit Minecraft auskenne gibt es den Minecraft Username und die UUID. Die UUID kann übrigens über den Namen über bestimmte Web APIs über ein GET Abgefragt werden. Auch umgekehrt.

Soweit ich das auch verstanden habe, willst du das ein MC-User mehrere User als Freunde haben kann.

Vielleicht so: Siehe Bild.

Du musst übrigens in der Friend Tabelle USER_ID und FRIEND_ID zu einem zusammengesetzen Primärschlüssel machen. Dadurch ist durch das DBMS sichergestellt, dass ein User einen Freund nur einmal haben kann und nich mehrmals.

LG SeriousLaw


 - (Minecraft Server, Bukkit, MySQL)

SeriousLaw  31.10.2016, 21:47

Übrigens:

Auch dürfen USER_ID und FRIEND_ID in der FriendTabelle nicht die selben
sein, sonst hast du dich selbst als Freund. Aber das muss in die
Programmlogik (Validierung).

0

1. Tabelle mit allen userdaten zb id, name,email...

2. Tabelle mit allen freundschaften und freundschaftsdaten wenn notwendig also id,srcuid, dstuid

Ich würde in der einen Spalte VARCHAR für die UUID nehmen, und in der zweiten TEXT und dort dann ein JSON-Format mit den Freunden. 

LG :)


sebba1898 
Beitragsersteller
 31.10.2016, 21:06

Und wie geht das mit dem JSON Format?

0
verreisterNutzer  31.10.2016, 21:07
@sebba1898

Da musst du einfach mal googeln, man kann mit Java JSONS Parsen und durch Iterieren also kann man bestimmt auch welche erstellen. 

0

Ich habe die Freunde einfach so gespeicht: "Freund1.Freund2,Freund3" und diese dann mit der "String[] friends = IRGENDEINSTRING.split(",");" Codezeile wieder in einzelne Freunde umgewandelt sozusagen

LG Nico

P.S. Ich hoffe du weiß was ich meine ;| bin nicht so gut im erklären ;)

Woher ich das weiß:Berufserfahrung – Hobby zum Nebenjob gemacht.