Wie speichere ich Array-Daten in MySQL: Einzelfeld vs. relationales Schema?

Patricia Arquette
Freigeben: 2024-10-30 19:14:02
Original
401 Leute haben es durchsucht

How to Store Array Data in MySQL: Single Field vs. Relational Schema?

Speichern von Array-Daten in MySQL: Alternative Ansätze

Obwohl das Speichern eines Arrays in einem einzelnen MySQL-Feld wie eine praktische Lösung erscheinen mag, ist es das auch Im Allgemeinen nicht empfohlen, da es die Datenintegrität und effiziente Abfragefunktionen beeinträchtigt. Stattdessen ist es sinnvoller, das Datenbankschema anzupassen, um die verschiedenen Elemente des Arrays aufzunehmen.

Beispiel für die Neugestaltung eines relationalen Schemas

Betrachten Sie ein Array mit der folgenden Struktur :

$a = array(
    1 => array(
        'a' => 1,
        'b' => 2,
        'c' => 3
    ),
    2 => array(
        'a' => 1,
        'b' => 2,
        'c' => 3
    ),
);
Nach dem Login kopieren

Um dieses Array effektiv in einer relationalen Datenbank zu speichern, könnte eine Tabelle wie diese erstellt werden:

CREATE TABLE test (
  id INTEGER UNSIGNED NOT NULL,
  a INTEGER UNSIGNED NOT NULL,
  b INTEGER UNSIGNED NOT NULL,
  c INTEGER UNSIGNED NOT NULL,
  PRIMARY KEY (id)
);
Nach dem Login kopieren

Alternative Optionen zum Speichern von Array-Daten

Wenn das Speichern des Arrays in einem einzelnen Feld unbedingt erforderlich ist, können Optionen wie Serialisierung und JSON-Kodierung genutzt werden:

  • Serialisierung (serialize() und unserialize()) – Konvertiert ein Array in eine Zeichenfolge, die in einem Datenbankfeld gespeichert werden kann. Dies schränkt jedoch die Möglichkeit ein, den tatsächlichen Array-Inhalt abzufragen.
  • JSON-Kodierung (json_encode() und json_decode()) – Ähnlich der Serialisierung, bietet aber mehr Struktur und Interoperabilität.

Beispiel für die Verwendung der JSON-Kodierung

Angenommen, wir möchten das Array $a mit JSON-Kodierung speichern:

$json_encoded = json_encode($a);
Nach dem Login kopieren

Um das Array abzurufen aus der Datenbank:

$json_decoded = json_decode($json_encoded, true);
Nach dem Login kopieren

Dieser Ansatz ermöglicht uns den direkten Zugriff auf die Array-Elemente.

Das obige ist der detaillierte Inhalt vonWie speichere ich Array-Daten in MySQL: Einzelfeld vs. relationales Schema?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!