[pgsql] Datatype voor plaatjes

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Lasse

Lasse

28/02/2008 21:02:00
Quote Anchor link
En meteen nog een vraag van mij:
Ik wil graag een plaatje opslaan in mijn PostgreSQL database. Maar ik vraag me af welk datatype ik moet gebruiken: text of bytea?

In MySQL gebruikte ik altijd een BLOB-veld, en dat werkte prima, maar volgens mij hoor je een bytea te gebruiken, of niet?

Alvast bedankt voor de hulp.
 
PHP hulp

PHP hulp

26/09/2022 17:16:10
 
Frank -

Frank -

28/02/2008 21:06:00
Quote Anchor link
Een VARCHAR om de link naar het plaatje op te slaan. Het plaatje zelf ga je niet in de database opslaan, het vreet ruimte en levert niks op.

Uitzondering: Wanneer je op pixelniveau vergelijkingen wilt gaan doen tussen plaatjes, bv. gezichtsherkenning of vingerafdrukken vergelijken.
 
Lasse

Lasse

28/02/2008 21:19:00
Quote Anchor link
Het vreet toch niet meer ruimte dan in het filesysteem? En waarom levert het niets op? Als ik bijvoorbeeld avatars bij een user wil gebruiken, dan is het toch handig als je dat in de database doet? Als je het gewoon in het filesysteem opslaat, en je verwijdert bijvoorbeeld de user, dan moet je ook nog het plaatje verwijderen, want je kan dan niet met een FK werken ofzo...
 
Frank -

Frank -

28/02/2008 21:27:00
Quote Anchor link
Niet? Wat dacht je van RAM? Daar heb je met een filesystem geen last van.

Het verwijderen van een bestand kun je vanuit PHP doen en bij succes pas het id uit de database verwijderen. Met PL/PERL kun je een stored procedure schrijven die vanuit de database jouw filesystem benadert en het bestand weggooid. Mogelijkheden genoeg dus!

Bestanden sla je niet op in de database, een filesystem kan dat veel beter. Het komt de snelheid van de database zeker ten goede.

Edit: Heb me toch een hekel aan fouten met d's en t's...
Gewijzigd op 01/01/1970 01:00:00 door Frank -
 
Lasse

Lasse

28/02/2008 21:34:00
Quote Anchor link
Oke, dan doe ik dat. En ik neem aan dat je TEXT bedoelde? Naar mijn weten bestaat VARCHAR niet in PostgreSQL, of wel?

Wederom bedankt voor je goede hulp!
 
Frank -

Frank -

28/02/2008 21:38:00
Quote Anchor link
Jawel hoor, zie de handleiding: character varying(n), varchar(n)

2 namen voor 1 datatype.
 
Lasse

Lasse

28/02/2008 21:52:00
Quote Anchor link
Ik zie het ja, dat wist ik niet...
Maar een text-datatype is hier toch meer op zijn plaats? Je weet toch niet hoe lang die link gaat worden (je weet het waarschijnlijk wel, maar het is niet iets wat persé niet langer dan ... karakters mag zijn).
 
Frank -

Frank -

28/02/2008 21:56:00
Quote Anchor link
Bestandsnamen van meer dan 255 karakters? Ik vraag me af of je dan geen problemen gaat krijgen met je besturingssysteem, hoe PHP daar mee omgaat en hoe de webbrowser dat gaat doorsturen.

Het pad naar het bestand kan overal hetzelfde zijn, dat hoef je eigenlijk niet apart op te slaan. Tevens ga jij natuurlijk alle namen zelf bepalen, dan krijg je nooit dubbele namen. De originele bestandsnaam kun je uiteraard ook nog even opslaan, mocht je daar behoefte aan hebben.

Edit: Er zijn inderdaad beperkingen aan de lengte van de filename, zie wikipedia.
Gewijzigd op 01/01/1970 01:00:00 door Frank -
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.