2015-07-14 8 views
5

Vielleicht habe ich nie an der richtigen Stelle gesucht, aber ich frage mich oft, was die beste Praxis ist, mehrere Daten in einem Feld zu speichern, und ich habe nie eine Antwort gefunden, die ich verwenden könnte.MySQL DB mehrere Daten für Feld

Lassen Sie mich klarer mit einem Beispiel sein.

Sagen wir, ich habe einen „hobbys“ -Feld in einem user_table

Wenn der Benutzer die Registrierung er tennis, video game und piano zu seinem Profil hinzufügen möchten.

Ist es besser:

  1. Um verschiedene Felder für jeden Hobby zu schaffen wie: hobby_id_1, hobby_id_2, hobby_id_3

  2. oder ein einzelnes Feld namens hobbys erstellen und Daten mit einem Komma getrennt einfügen? hobbys_id => 1,4,5 (Diese Lösung ist tatsächlich möglich?)

Und dann, wenn wir die Daten und fügen Sie ein neues Hobby zum Beispiel aktualisieren möchten, wie machen wir das?

Jede kleine Hilfe würde sehr geschätzt werden.

Vielen Dank im Voraus :)

Antwort

6

Dies fällt unter viele zu viele Beziehung.

Zum Speichern von Viele-zu-Viele-Beziehungen ist eine Zwischentabelle erforderlich, in der hauptsächlich die Primärschlüssel (IDs) jeder Beziehung gespeichert werden. In Ihrem Fall

users_table (user_id, Vorname, ...)

hobbies_table (hobby_id, Name, ...)

users_hobbies_table (id, user_id, hobby_id)

Here ist eine ausführlichere Erklärung.

+1

Klingt echt und verständlich – Valentincognito