Ich habe eine Tabelle, die einige Eigenschaften von Objekten speichert. Jede Eigenschaft hat eine eigene Zeile in der Tabelle und verweist auf die ID des Objekts aus einer anderen Tabelle. Eigenschaften haben derzeit den Typ boolean (0), numerisch (1) oder Freitext (2) und sie speichern einen einzelnen Wert.Verschiedene Datentypen in Spalte
Die Frage ist, wie kann ich feststellen, welche Zeile welcher Art ist? Sollte die Eigenschaftentabelle eine Spalte mit dem Namen type
haben und den Wert dann in einer separaten Spalte TEXT
speichern oder den Wert möglicherweise als JSON-Objekt speichern? Gibt es dafür eine einzige gute Lösung? Ich glaube, hier geht es um den Erhalt des Datentyps, der schwierig zu handhaben sein könnte, wenn die Daten in einer Spalte TEXT
gespeichert werden.
Mein Bauch sagt mir, dass das Speichern des Typs und Wertes in einem JSON-Objekt der Weg wäre, hier zu gehen.
Objekttabelle:
id | name
-----+-----
123 | abc
Idee für Eigenschaftstabelle:
id | object_id | type | data
----+-----------+------+-------
1 | 123 | 1 | 123.12
2 | 123 | 0 | f
Andere Ideen für Eigenschaftstabelle:
id | object_id | type | data
----+-----------+-----------------------
1 | 112 | 1 | {value:123.12}
2 | 112 | 0 | {value:false}
'pg_typeof (column_name)' würde Ihnen den Typ –
Ich möchte verschiedene Arten von Daten in einer einzigen Spalte speichern und ihre Datentypen beibehalten, so dass ich denke, 'pg_typeof()' wird mir hier helfen. Ich habe den Titel bearbeitet, um meine Frage besser zu beschreiben. – Nysten
Dann erwägen Sie die Verwendung von JSON-Datentyp anstelle von Text –