it-swarm.com.de

Wie speichere ich ein Array in einer Tabellenspalte?

Ich habe mehrere Kontakte für einen Benutzer und möchte sie in einer einzigen Spalte speichern.

uID |  Contact
----| ---------
2   | 1221
    | 1223
----|----------
3   | 1123

Wie kann ich das machen?

2
Piyush

Sie können separate Tabellen wie Benutzertabelle und Kontakttabelle erstellen:

  • benutzertabelle

    uID
    ---
    2
    
  • kontakttabelle

    Contact | uID
    1221    | 2
    1223    | 2
    
4
jonggu

Wie oben vorgeschlagen, besteht der beste Weg darin, zwei Tabellen zu haben - eine für den Benutzer und eine für den Kontakt.

Aus Ihrem Beispiel geht hervor, dass Sie nur eine ID für den Benutzer haben. Wenn dies der Fall ist und Sie sicher wissen, wie viele Kontakte ein Benutzer maximal hat (sagen wir 3), können Sie eine einzelne Tabelle mit (Benutzer-ID, Kontakt1, Kontakt2, Kontakt3) als Spalten verwenden und Nullen zulassen für die letzten beiden Spalten. Problem damit: Nicht flexibel, wenn Sie mehr Kontakte für einen Benutzer hinzufügen möchten oder wenn Sie weitere Informationen über den Benutzer hinzufügen möchten.

Eine andere Alternative (wenn Sie nicht mehrere Spalten haben möchten) besteht darin, eine einzelne Spalte für den Kontakt zu verwenden, diese jedoch als einzelne Zeichenfolge mit Trennzeichen hinzuzufügen. Zum Beispiel,

  • uID | Kontakt
  • 2 | 1221,1223
  • 3 | 1123

Problem dabei: Abfragen aufgrund von Kontakt wird zum Schmerz.

Von diesen 3 Optionen würde ich die erste Lösung (mit zwei separaten Tabellen) empfehlen, wie von jemand anderem in den obigen Antworten vorgeschlagen. Wenn Sie das nicht möchten, ist die dritte Option die nächstbeste.

3