For så vidt angår PostgreSQL er bekymret, skriv text
er udelukket. Den er langsommere, bruger mere plads og er mere fejltilbøjelig end bytea
til formålet.
Der er grundlæggende 3 tilgange:
-
Brug typen
bytea
(grundlæggende pg-ækvivalenten til SQL-blob-typen). -
Brug "store objekter ".
-
Gem blobs som filer i filsystemet og gem kun filnavnet i databasen.
Hver har sine egne fordele og ulemper.
1. er ret enkel at håndtere, men kræver mest diskplads. Noget afkodning og kodning er påkrævet, hvilket gør det også langsomt. Sikkerhedskopier vokser hurtigt i størrelse!
2. er lidt akavet i håndteringen, men du har din egen infrastruktur til at manipulere klatterne - hvis du skulle få brug for det. Og du kan nemmere lave separate sikkerhedskopier.
3. er langt den hurtigste måde og bruger mindst diskplads. Men det giver ikke den referenceintegritet, som du får, når du gemmer inde i databasen.
Jeg har en række implementeringer af den slags for billedfiler:gem et lille miniaturebillede i et bytea-felt for referenceintegritet og hurtig reference. Gem originalbilledet som fil i filsystemet. Selvfølgelig skal du tænke lidt over, hvornår og hvordan du sletter forældede filer, hvordan du sikkerhedskopierer de eksterne filer og sådan.