|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | |
|
Membre habitué
![]() Pascal Diogo AntunesÉtudiant Inscription : janvier 2008 Messages : 270 ![]() |
bonjour,
j'en ai l'habitude, simple question: Est-il plus intelligent de mettre un maximum de contraintes dans sa BDD, que ce soit vertical ou horizontal (CHECK, UNIQUE, ...), et prendre le risque que ça plante si on insère qqchose; que de faire les vérif dans la page php, et devoir de temps en temps vérifier la BDD pour être sûr de ne pas mettre quelque chose qui ne respecte pas la règle ? Je pense qu'en posant ma question je me réponds moi même, mais j'aimerai avoir des avis. Est ce que des contraintes (un maximum), permet ainsi une (quasi) totale aisance dans sa page php, et permettre de ne vérifier que la variable d'erreur de BDD s'il y a eu une erreur ? Je pense que vérifier au moins la taille des chaînes des caractères, ou la taille des données a rentré sont un minimum à vérifier. Merci d'avance edit: j'ai pu lire ça Citation:
|
|
|
|
00
|
|
|
#2 |
![]() ![]() |
Tu peux lire ce que dit Frédéric Brouard, alias SQLPro chez Developpez.com, sur le concept de base de données épaisse.
À mon avis, il faut distinguer la solidité des données, dont le contrôle revient au SGBD, des spécificités d'une application qui utilise la BDD. Par exemple, je pourrais avoir dans une entreprise une base de données de gestion de documents avec le titre du document dans une colonne de type VARCHAR(255). Si les besoins d'une application qui utilise cette BDD déterminent que le titre des documents qu'elle génrère ne doit pas dépasser 50 caractères, alors c'est peut-être mieux que ce soit l'application qui contrôle cette contrainte. Mais on pourrait aussi programmer une contrainte en BDD pour que les documents de type X - ceux qui sont générés par cette application - aient un titre inférieur à 51 caractères. En mettant les contraintes dans la BDD, cela demande au développeur de l'application de gérer les erreurs retournées pas le SGBD relatif à ces contraintes. Et au passage, CHECK est inconnu de MySQL ; c'est une de ses grosses lacunes par rapport à la norme SQL.
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework... « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau) À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française ! Linuxiens, comptez-vous ! |
|
00
|
|
|
#3 | ||
![]() ![]() ![]() Frédéric BROUARDExpert SGBDR & SQL Inscription : mai 2002 Messages : 10 959 ![]() |
Citation:
Un code applicatif ne peut en aucun cas réaliser l’équivalent de :
En ce qui concerne la contrainte CHECK. Si elle porte sur une ligne, on peut la simuler dans un code client. Maintenant si elle porte sur la table entière ou vérifie d'autres tables c'est strictement impossible. Citation:
Ceci dit, vu la pauvreté de MySQL (à lire : MySQL un SGBDR poudre aux yeux) vous aurez du mal à implémenter des contraintes intelligente ! A lire sur les contraintes : http://sqlpro.developpez.com/contrai...aintes_SQL.pdf Quand à vérifier la taille des chaines saisies, vous pouvez le faire en limitant directement le nombre de caractères dans le champ de l'IHM ! A +
__________________
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/ Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp. Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation * * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * * |
||
|
10
|
|
|
#4 |
|
Membre habitué
![]() Pascal Diogo AntunesÉtudiant Inscription : janvier 2008 Messages : 270 ![]() |
D'accord, c'est juste que j'utilise MySQL par défaut, c'est celui qui nous ai demandé d'utilisé en cours (oui j'ai vu pas mal de critique dessus) .
Mais dans ce cas là, quel est pour vous le meilleur SGBD ? (sans doute déjà parlé, donc juste un lien ne me dérangera pas) CHECK n'est utile que lors de l'insertion, mais si je n'ai mis aucune contrainte et que je tente d'ajouter une donnée qui ne rentre pas dans les règles imposés lors de la création de la table, il y aura automatiquement refus d'enregistrer cette dernière, et donc la ligne ne sera pas rempli (NULL) là où il y aura eu non respect du type ? |
|
|
00
|
|
|
#5 |
|
Membre habitué
![]() Pascal Diogo AntunesÉtudiant Inscription : janvier 2008 Messages : 270 ![]() |
je me demandais aussi, pourquoi on voit toujours en SGBD dans les livres MySQL (j'ai lu la liste des gros défauts de MySQL), pourquoi s'il est si mauvais, pourquoi est ce quelque chose qu'on enseigne souvent (à mon DUT c'est MySQL et Oracle, qui est considéré les 2 moins bon SGBD) en cours dans les livres ou à l'université ?
autre chose, je suis sous OVH, est-ce qu'il font exclusivement du MySQL, ou il y a possibilité d'utiliser autre chose ? |
|
|
00
|
|
|
#6 | ||
![]() ![]() |
Citation:
Citation:
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework... « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau) À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française ! Linuxiens, comptez-vous ! |
||
|
00
|
|
|
#7 | |
|
Membre habitué
![]() Pascal Diogo AntunesÉtudiant Inscription : janvier 2008 Messages : 270 ![]() |
Citation:
Je vais sans doute me rediriger vers un autre SGBD, donc j'aimerai savoir quel serait le meilleur pour un site web, où la vitesse d’exécution des requêtes et du retour des résultats sera très important. La BDD ne sera pas énorme, mais elle faudrait qu'elle soit le plus rapide possible. Par exemple: qu'est ce qu'utilise developpez.com ? |
|
|
|
00
|
|
|
#8 | ||
![]() ![]() |
Citation:
Citation:
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework... « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau) À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française ! Linuxiens, comptez-vous ! |
||
|
00
|
|
|
#9 |
|
Membre habitué
![]() Pascal Diogo AntunesÉtudiant Inscription : janvier 2008 Messages : 270 ![]() |
Je vois un peu plus l'intérêt de chacune des BDD.
je suis sous OVH (hébergement simple: page perso de base), et je crois avoir vu PHP/MySQL, je pense que c'est exclusivement ça (tu dois être sûrement au courant si c'est le cas). c'est vrai que là c'est un peu bête de ma part, surtout que j'ai payé l’hébergement il y a plus d'un moi ^^ (ce n'était pas vraiment prévu ce que je voulais faire - en tout cas je ne pensais pas faire comme j'avais l'intention de faire aujourd'hui). Confirmation de mes dires à propos de OVH ? Et quel hébergement propose l'utilisation de postegreSQL ? |
|
|
00
|
|
|
#10 | |
![]() ![]() ![]() Frédéric BROUARDExpert SGBDR & SQL Inscription : mai 2002 Messages : 10 959 ![]() |
Citation:
Mais comme c'est un site "passif" (sans transactions) et peu concurrentiel (on n'est pas plusieurs à modifier les mêmes données) alors c'est pas bien grave ! A +
__________________
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/ Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp. Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation * * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * * |
|
|
00
|
|
|
#11 |
|
Membre habitué
![]() Pascal Diogo AntunesÉtudiant Inscription : janvier 2008 Messages : 270 ![]() |
je reste sur mysql, et je verrai à l'avenir.
merci à tous. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com