Add Vortrag 4, 5
This commit is contained in:
33
vortrag5_datentypenpostgres.md
Normal file
33
vortrag5_datentypenpostgres.md
Normal file
@@ -0,0 +1,33 @@
|
||||
# Erweiterte Datentypen in PostgreSQL
|
||||
- Andreas Scherbaum. Arbeitet seit 1998 mit Postgres
|
||||
- Hat nen krassen Blog: andreas.scherbaum.la
|
||||
- Welche Datentypen nutzen wir so?
|
||||
- Datenbank an sich weiß nix über Datentypen. Diese sind nur Extensions
|
||||
- Everything is a star!
|
||||
- Alles ist nichts!
|
||||
- Man kann Datenbanken, Tabellen und Inhalte in non printable whitespace machen. Einfach weils geht
|
||||
- Nicht Money-Type verwenden.
|
||||
- Man kann nur eine Währung speichern, also keine Konvertierung
|
||||
- Je nach Umgebungavariable wird bspw. decimal separator anders interpretiert.
|
||||
- Währungen mit NUMERIC Type speichern. Bis 1000 Stellen Genauigkeit
|
||||
- Arrays. Man kann alles in Arrays packen. Mittlerweile wird mehr JSON für flexible Daten genutzt.
|
||||
- Arrays beginnen bei 1!
|
||||
- JSON(B): JSONB ist das was man haben will, da mehr Funktionen.
|
||||
- JSONB wird beim speichern geparsed. JSON wird beim lesen geparsed, heißt man kann ungültiges JSON abspeichern
|
||||
- Datum in JSONB speichern ist wegen Validierung schlecht.
|
||||
- Composite Types:
|
||||
- Wird auch Row Type oder Record
|
||||
- Datentyp definieren und dann kann man diesen in der Datenbank weiter verwenden.
|
||||
- Besseres Feature als Composite Types: Domains
|
||||
- Ein Datentyp mit zusätzlichen Constraints
|
||||
- Beliebig viele Constraints und man kann den Datentyp in allen Tabellen verwenden.
|
||||
- Sind sehr umfangreich und im SQL Standard integriert.
|
||||
- Chacks kann man in Domain Type auslagern anstatt krasse Funktionen zu schreiben.
|
||||
- Range Types:
|
||||
- Anfang und Ende
|
||||
- Kann man als eigene Typen erstellen
|
||||
- Sinnvoll für Zeitspannen. Man kann wieder Checks drauf laufen lassen
|
||||
- GIST Index darauf bilden. Daraufhin kann man ORDER BY nur über Index scan ausführen lassen -> sehr schnell
|
||||
- Create your own type:
|
||||
- Wie hat PHP Postgres Boolean Typen vor PDO Treiber behandelt? Hat es gar nicht behandelt. Hat alles als Text behandelt.
|
||||
- Deshalb true/false auf Integer umwandeln. Also besser einfach PDO verwenden.
|
Reference in New Issue
Block a user