[php] PostgreSQL

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • sjink
  • Registratie: Oktober 2002
  • Laatst online: 03-02 07:32
Ik heb tot nu toe eigenlijk altijd met asp gewerkt en ik wilde nu eigenlijk deze vakantie eens beginnen met php.

Nu is mij altijd verteld dat ik het best MySQL kan gebruiken voor database met php. Nu kwam ik een php-site tegen die gebruik maakt van PostgreSQL. Heeft iemand ervaring hiermee? Op de site van PostgreSQL beweren zij natuurlijk dat ze beter zijn dan de rest enzo. mja dat zeggen ze allemaal ;)

Maar mijn vraag is dus of iemand ervaring heeft met PostgreSQL en of hij/zij het beter vond dan MySQL

*blup*


Acties:
  • 0 Henk 'm!

  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 14:28
Het zijn 2 verschillende databases. Welke het beste is kan je zelf uitzoeken. Volgens ACM moet je MySQL in ieders geval niet nemen ;)

Acties:
  • 0 Henk 'm!

  • glashio
  • Registratie: Oktober 2001
  • Laatst online: 18-09 10:13

glashio

C64 > AMIGA > PC

Mocht ie niet reageren, ACM heeft een handig linkje staan in z'n Signature
Met punten waarom je geen MySQL moet gebruiken.

Wat voor "speciale" funktionaliteit zoek je dan in een DBASE-Engine ?
sjink schreef op 29 juni 2004 @ 14:11:
nou mijn eisen zijn vooral gratis, stabiel en betrouwbaar ;)
edit:
Neem MySQL ;) ( wie ben ik om je dat aanteraden :Y) )
1 Ding, mocht je vragen hebben , dan zijn er meer MySQL-GoT'ers dan PostgreSQL-GoT'ers.

[ Voor 46% gewijzigd door glashio op 29-06-2004 14:17 . Reden: Aanbeveling ]

> Google Certified Searcher
> Make users so committed to Google that it would be painful to leave
> C64 Gospel
> [SjoQ] = SjoQing


Acties:
  • 0 Henk 'm!

  • -FoX-
  • Registratie: Januari 2002
  • Niet online

-FoX-

Carpe Diem!

Ik denk toch dat je het beste kan beginnen met mysql hoor. PHP en MySQL zijn goed op elkaar afgestemd en ik denk ook dat het de "makkelijkste" DB is om mee te beginnen.

PostgreSQL is natuurlijk ook een goede RDBMS, maar als ik jou was zou ik beginnen met MySQL.. bevalt het je niet, kan je nog steeds overschakelen naar een andere db.

Acties:
  • 0 Henk 'm!

  • sjink
  • Registratie: Oktober 2002
  • Laatst online: 03-02 07:32
nou mijn eisen zijn vooral gratis, stabiel en betrouwbaar ;)

maar waarom ik het eigenlijk wilde weten, omdat ik vanaf scratch begin met php en dan ook meteen 'goed' wilde beginnen. Dus ook meteen de beste strategie kiezen qua ontwikkelomgeving enzo

[ Voor 62% gewijzigd door sjink op 29-06-2004 14:14 ]

*blup*


Acties:
  • 0 Henk 'm!

  • glashio
  • Registratie: Oktober 2001
  • Laatst online: 18-09 10:13

glashio

C64 > AMIGA > PC

Relevante Link & Link
LAMP = Linux Apache MySQL PHP

> Google Certified Searcher
> Make users so committed to Google that it would be painful to leave
> C64 Gospel
> [SjoQ] = SjoQing


Acties:
  • 0 Henk 'm!

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06 13:31

drm

f0pc0dert

maar waarom ik het eigenlijk wilde weten, omdat ik vanaf scratch begin met php en dan ook meteen 'goed' wilde beginnen. Dus ook meteen de beste strategie kiezen qua ontwikkelomgeving enzo
Als je "goed" wilt beginnen kun je beter met PostGres beginnen, want dan leer je ook op een goede manier SQL aan. MySQL is wat dat betreft namelijk redelijk gehandicapt, en postgres houdt zich over het algemeen erg goed aan de ANSI-SQL standaarden.

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


Acties:
  • 0 Henk 'm!

  • Skaah
  • Registratie: Juni 2001
  • Laatst online: 16-09 18:38
Ik heb zelf wel wat ervaring met PostgreSQL, het werkt in principe net iets anders dan MySQL, maar kan wel alles (en waarschijnlijk wel meer). Het is meer een professionele database, MySQL heeft een beetje een hobby gevoel.

Vergelijk deze queries om de lijst met tabllen te krijgen:
SQL:
1
SHOW TABLES;
code:
1
SELECT tablename FROM pg_tables WHERE tablename !~* \'pg_*\';

Mag jij raden welke bij welke database hoort.

Persoonlijk vind ik het MySQL BLOB veld wel handiger dan PostgreSQL's Large Object-gedoe, maar dat is waarschijnlijk omdat ik daar minder ervaring mee heb.

Het is later ook gemakkelijker om een hoster met MySQL te vinden dan met PostgreSQL. Uiteindelijk maakt het niet uit, omdat je uiteindelijk toch een Database Abstraction Layer zult gebruiken, en daarin de verschillen abstraheert.

Acties:
  • 0 Henk 'm!

  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 14:28
FROM pg_tables
Uhum, waar zou PG voor staan? Doe het dan iets minder opvallend... ;)
Om te leren maakt het volgens mij niet echt veel uit. In het begin doe je toch vooral eenvoudige queries en die zijn grotendeels hetzelfde.

Acties:
  • 0 Henk 'm!

  • sjink
  • Registratie: Oktober 2002
  • Laatst online: 03-02 07:32
ik heb al aardig wat ervaring met sql en dus ook met het maken van complexere sql statements.

Ik heb helemaal niet stil gestaan bij het argument van hosting. Hosts die PostgreSQL ondersteunen zijn volgens mij ook niet/nauwelijks te vinden.

*blup*


Acties:
  • 0 Henk 'm!

  • Skaah
  • Registratie: Juni 2001
  • Laatst online: 16-09 18:38
djluc schreef op 29 juni 2004 @ 14:55:
[...]
Uhum, waar zou PG voor staan? Doe het dan iets minder opvallend... ;)
Om te leren maakt het volgens mij niet echt veel uit. In het begin doe je toch vooral eenvoudige queries en die zijn grotendeels hetzelfde.
Okay, wat een groter verschil:
PHP:
1
$query = sprintf('EXPLAIN TABLE %s',$table);
PHP:
1
2
3
4
5
$query = sprintf('SELECT a.attnum, a.attname AS Field, t.typname AS Type, a.attlen AS
length, a.atttypmod AS length_var, a.attnotnull AS not_null, a.atthasdef as 
has_default FROM pg_class c, pg_attribute a, pg_type t WHERE c.relname = \'%s\' 
AND a.attnum > 0 AND a.attrelid = c.oid AND a.atttypid = t.oid ORDER BY 
a.attnum;',$table);
:P

[ Voor 4% gewijzigd door Skaah op 29-06-2004 16:05 ]


Acties:
  • 0 Henk 'm!

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06 13:31

drm

f0pc0dert

Als je nou je queries ook een beetje uit zou lijnen en tbv van de leesbaarheid met inner ipv equi joins zou werken, zou dat al een hele hoop schelen ;)
edit:
Stored procedures nog even daar gelaten, uiteraard.

[ Voor 17% gewijzigd door drm op 29-06-2004 16:35 ]

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


Acties:
  • 0 Henk 'm!

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

(jarig!)
Skaah schreef op 29 juni 2004 @ 14:41:
Persoonlijk vind ik het MySQL BLOB veld wel handiger dan PostgreSQL's Large Object-gedoe, maar dat is waarschijnlijk omdat ik daar minder ervaring mee heb.
Die twee moet je dan ook niet met elkaar vergelijken... PostgreSQL's bytea is wat meer wat MySQL met de blob doet.
De LOB van PostgreSQL kan je eigenlijk wat beter met Oracle's bfile-type vergelijken.
Het is later ook gemakkelijker om een hoster met MySQL te vinden dan met PostgreSQL. Uiteindelijk maakt het niet uit, omdat je uiteindelijk toch een Database Abstraction Layer zult gebruiken, en daarin de verschillen abstraheert.
Die verschillen zijn alleen weg te abstraheren als je je laag boven je queries plaatst. Dus dat je applicatie zelfs niet ziet welke en hoeveel queries er worden uitgevoerd...
Want je loopt enerzijds grote risico's in je MySQL-db omtrent de referentiele integriteit (die je sowieso nauwelijks kan wegabstraheren) en anderzijds loop je tegen queries aan die noodzakelijkerwijs voor MySQL zijn "vereenvoudigd", waardoor je performance verlies lijdt bij postgresql door het onnodig gebruiken van simpele queries.
sjink schreef op 29 juni 2004 @ 13:59:
Ik heb tot nu toe eigenlijk altijd met asp gewerkt en ik wilde nu eigenlijk deze vakantie eens beginnen met php.

[knip]

Maar mijn vraag is dus of iemand ervaring heeft met PostgreSQL en of hij/zij het beter vond dan MySQL
De belangrijkste vraag is eigenlijk met welke database je ervaring hebt. Want zeker als je met MSSQL ervaring hebt (en dan niet alleen met SELECT * FROM tabel; queries), dan zal PostgreSQL beter aansluiten bij je ervaring en verwachting.
Skaah schreef op 29 juni 2004 @ 16:05:
Okay, wat een groter verschil:
SQL:
1
select * from information_schema.columns where table_name = 'tabel';

Zo groot is dat verschil niet toch? :)

Maar PostgreSQL's variant is wel een stuk flexibeler en sowieso is het code die je als het goed is zelden in een applicatie nodig hebt...

[ Voor 8% gewijzigd door ACM op 29-06-2004 16:45 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Skaah schreef op 29 juni 2004 @ 14:41:
Vergelijk deze queries om de lijst met tabllen te krijgen:
SQL:
1
SHOW TABLES;
code:
1
SELECT tablename FROM pg_tables WHERE tablename !~* \'pg_*\';

Mag jij raden welke bij welke database hoort.
SQL:
1
SHOW TABLES;
code:
1
\d

Mag jij nu nogmaals raden welke bij welke database hoort.
Helaas werkt dat niet vanuit php, maar hoevaak doe je deze query dan ook vanuit php?

PostgreSQL is groter, logger, maar ook super uitgebreid met de features.

Acties:
  • 0 Henk 'm!

  • jochemd
  • Registratie: November 2000
  • Laatst online: 24-08 12:31
Skaah schreef op 29 juni 2004 @ 16:05:

PHP:
1
2
3
4
5
$query = sprintf('SELECT a.attnum, a.attname AS Field, t.typname AS Type, a.attlen AS
length, a.atttypmod AS length_var, a.attnotnull AS not_null, a.atthasdef as 
has_default FROM pg_class c, pg_attribute a, pg_type t WHERE c.relname = \'%s\' 
AND a.attnum > 0 AND a.attrelid = c.oid AND a.atttypid = t.oid ORDER BY 
a.attnum;',$table);
:P
Hou alsjeblieft op met het geven van foute voorbeelden. De correcte query in PostgreSQL is:
code:
1
SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = '$table'

Er bestaat zoiets als een SQL standaard en PostgreSQL biedt een standaard compliant manier aan om meta-informatie te bevragen. Bovenstaande code kan je dus ook rechtstreeks kopiëren naar bijvoorbeeld MS SQL Server en dan werkt het nog steeds, omdat het volgens de standaard werkt.
edit:
ACM was me voor

[ Voor 10% gewijzigd door jochemd op 29-06-2004 16:55 ]


Acties:
  • 0 Henk 'm!

  • -FoX-
  • Registratie: Januari 2002
  • Niet online

-FoX-

Carpe Diem!

Je zou je gewoon eens moeten afvragen voor wat je een DB gaat nodig hebben. Is het enkel om wat simpele data bij te houden voor gewone website's, dan voldoet MySQL ruimschoots...
Dan is er natuurlijk ook het feit dat MySQL bij 90% van de webhosters wordt aangeboden als default DB (samen met PHP).

Ga je je eerder bezighouden met webapplicaties, dan kan je wel eens naar een PostgreSQL kijken..

Acties:
  • 0 Henk 'm!

  • sjink
  • Registratie: Oktober 2002
  • Laatst online: 03-02 07:32
ACM schreef op 29 juni 2004 @ 16:44:
[...]

[...]

De belangrijkste vraag is eigenlijk met welke database je ervaring hebt. Want zeker als je met MSSQL ervaring hebt (en dan niet alleen met SELECT * FROM tabel; queries), dan zal PostgreSQL beter aansluiten bij je ervaring en verwachting.

[...]
Nou ik heb ervaring met Access, Oracle en SQL Server

*blup*


Acties:
  • 0 Henk 'm!

  • dingstje
  • Registratie: Augustus 2002
  • Laatst online: 02-01-2024
-FoX- schreef op 29 juni 2004 @ 17:07:
Je zou je gewoon eens moeten afvragen voor wat je een DB gaat nodig hebben. Is het enkel om wat simpele data bij te houden voor gewone website's, dan voldoet MySQL ruimschoots...
Dan is er natuurlijk ook het feit dat MySQL bij 90% van de webhosters wordt aangeboden als default DB (samen met PHP).

Ga je je eerder bezighouden met webapplicaties, dan kan je wel eens naar een PostgreSQL kijken..
Dit lijkt me redelijk onlogisch? Je komt eerst met het argument dat MySQL beter ondersteund wordt door hosters en raadt dan aan om PostgreSQL te gebruiken voor webapplicaties? Ik zou juist PostgreSQL gebruiken voor client-side applicaties (ook al omdat de license van PostgreSQL BSD-compatible is en MySQL GPL of commercieel is (tenzij je het op een akkoordje kan gooien zoals PHP)). Puur technisch gezien moet je gewoon kijken naar wat je wilt. Wil je een simpele database om een hoopje standaard queries tegenaan te gooien, ga dan voor MySQL (wil je een simpele, uiterst light-weight database, gebruik dan SQLite ;-)), heb je meer geavanceerde technieken nodig (waardoor mensen soms zeggen dat PostgreSQL een RDBMS is en MySQL een DBMS), ga dan voor PostgreSQL.

If you can't beat them, try harder


Acties:
  • 0 Henk 'm!

  • Skaah
  • Registratie: Juni 2001
  • Laatst online: 16-09 18:38
* nederig excuses aanbiedt voor onwetendheid

Acties:
  • 0 Henk 'm!

  • -FoX-
  • Registratie: Januari 2002
  • Niet online

-FoX-

Carpe Diem!

dingstje schreef op 29 juni 2004 @ 18:10:
Dit lijkt me redelijk onlogisch? Je komt eerst met het argument dat MySQL beter ondersteund wordt door hosters en raadt dan aan om PostgreSQL te gebruiken voor webapplicaties?
Waarom klinkt dat onlogisch?

Met webapplicaties bedoel ik geen e-commerce website's of dergelijke. Neen, eerder een applicatie voor klantenbeheer, ed.. Waar je wel eens eerder nood zou kunnen hebben aan bvb stored procedures, transacties, ...
Dergelijke applicatiesystemen draaien daarom ook meestal op een (interne) dedicated server, waar dan zelf de postgresql kan op worden geïnstalleerd.

Voor standaard website-development zou ik eerder voor MySQL gaan, simpelweg om het feit dat deze hiervoor prima voldoet!
Ik zeg hier wel niet dat MySQL niet voor webapplicaties zou voldoen, maar je zou bij webapps eerder aan een andere rdbms kunnen denken

Acties:
  • 0 Henk 'm!

  • vargo
  • Registratie: Januari 2001
  • Laatst online: 09:35
Een paar kleine toevoegingen...
* Kijk ook eens naar Firebird (voortzetting van Interbase en ik geloof open source en gratis)
http://www.firebirdsql.org/ff/foundation/FBFactsheet.html
* ...of anders MaxDB (voormalig SAP db, tegenwoordig ondergebracht bij MySQL)
* Denk eens aan het gebruik van een database abstraction layer (ezSQL, ADOdb voor php, de PEAR dbase abstraction layers etc): hiermee maar je je code meer 'portable' en kan je in een later stadium makkelijker switchen.
* http://www.phpbuilder.com/columns/index.php3?cat=1 heeft een paar interessante artikelen als ik het me goed herinner.

Acties:
  • 0 Henk 'm!

  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 14:28
Mee eens dat er ook anderen zijn maar om te beginnen zou ik toch echt kiezen uit MySQL of PostGreSQL. Al is het alleen maar om de suppport die er ook voor beginners aanwezig is op de vele fora.
Pagina: 1