Vous n'êtes pas identifié(e).

#1 03/06/2013 14:53:25

Contraintes de clés étrangères vs. vérifications PHP

Bonjour,


Je me pose la question suivante : je suis entrain de créer une base de données PostgreSQL. Celle-ci sera alimentée grâce à des formulaires. J'hésite entre poser des contraintes de clés étrangères dans PostgreSQL directement (ex : table1_gid integer REFERENCES table1 dans la table2) et utiliser des vérifications dans le code PHP... Mes profs me conseilleraient plutôt la première piste tandis que des professionnels utilisateurs de PostgreSQL me conseilleraient plutôt les vérifications PHP. Je ne sais pas quoi faire et surtout pas me rendre compte des inconvénients de chaque scénario.


Quels conseils pourriez-vous me donner ?


Merci par avance !


Thomas

Dernière modification par Thomas Williamson (03/06/2013 14:53:44)

Hors ligne

#2 03/06/2013 15:12:06

kenrio
Membre

Re : Contraintes de clés étrangères vs. vérifications PHP

les 2 ? big_smile mais sérieusement qu'est ce qui vous empêche de faire les 2 vérifs ?

utiliser des fonctions aussi c'est pas mal

Hors ligne

#3 03/06/2013 16:13:11

rjuju
Administrateur

Re : Contraintes de clés étrangères vs. vérifications PHP

Il est préférable de gérer les contraintes au moins dans postgresql. Cela vous assurera entre autres une sécurité en cas d'oubli dans l'application, et une gestion uniforme si plusieurs applications doivent se connecter.

Hors ligne

#4 03/06/2013 16:21:57

Re : Contraintes de clés étrangères vs. vérifications PHP

Merci pour vos réponses ! Je trouve d'emblée aussi plus logique de paramétrer a minima dans PGSQL... Je vais faire les deux !


Thomas

Hors ligne

#5 03/06/2013 21:58:50

gleu
Administrateur

Re : Contraintes de clés étrangères vs. vérifications PHP

Il est clair qu'il faut au minimum le faire au niveau de PostgreSQL. Tout simplement parce que tout le monde ne passera pas forcément par votre application et que la contrainte doit toujours être gérée, même pour un DBA connecté en direct au serveur PostgreSQL.


Guillaume.

Hors ligne

#6 04/06/2013 08:32:40

SAS
Membre

Re : Contraintes de clés étrangères vs. vérifications PHP

Bonjour,

C'est une erreur répandue que de penser que l'intelligence ne se trouve que dans l'applicatif.
Une réflexion bien menée du côté du schéma de la base vous permettra d'éviter bien des soucis ultérieurs.

La vérification des contraintes au niveau base ne vous empêche pas de valider en amont côté applicatif, mais évitera qu'une erreur applicative ne corrompe vos données.


Stéphane Schildknecht
Conseil, formations et support PostgreSQL
http://www.loxodata.com

Hors ligne

Pied de page des forums