So speichern Sie den algebraischen Datentyp permanent

8

Für einen Datentyp wie diesen

%Vor%

Und echte Daten mögen so

%Vor%

Wie speichere ich das in der Datenbank mit persistent, speziell wie man den "ODER" Teil macht?

Ich habe versucht, das Modell so zu definieren

%Vor%

Die rekursive Struktur würde in einer Spalte in einer Zeile automatisch als JSON-String gespeichert, was sehr schön ist. Aber wie können oder können wir eine "ODER" -Struktur im persistenten Modell definieren?

    
HHC 27.02.2014, 02:44
quelle

1 Antwort

9

Persistent kann nur ADTs speichern, die keine untergeordneten Daten haben. I.E. Folgendes kann gespeichert werden:

%Vor%

Aber rekursive Strukturen wie diese können nicht gespeichert werden, ohne sie in JSON zu serialisieren:

%Vor%

Was Sie verstehen müssen, ist, dass Persistent eine Art Speicherschicht über dem oberen Rand einer Datenbank ist. Sie müssen also über Ihr Schema nachdenken, was effizient in einer Datenbank gespeichert werden soll, nicht im Hinblick darauf, was praktisch ist Haskell-Datenstruktur.

%Vor%

Dieses Schema gibt Ihnen das Äquivalent der folgenden Struktur.

%Vor%     
Thomas 27.02.2014, 03:14
quelle

Tags und Links