|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | |||||
|
Invité de passage
![]() Inscription : octobre 2006 Messages : 31 ![]() |
Bonjour,
Je me traine un problème que je ne comprend pas, peut-être qu'un regard extérieur pourra m'aider J'ai une requête SQL qui passe dans MySQL mais pas en PHP. C'est une requête entre 2 table et l'erreur qui m'est remontée et la suivante : Citation:
Code :
Code :
Merci d'avance car là je sèche |
|||||
|
|
00
|
|
|
#2 | |
![]() ![]() |
Citation:
Ce qui n'est pas bien par contre, c'est que cette colonne est une clé étrangère pouvant semble t-il être à NULL.
__________________
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 |
|
Membre régulier
![]() Inscription : août 2006 Messages : 169 ![]() |
Bonjour,
je ne sais déjà pas comment tu as pu créer tes tables, chez moi j'ai une erreur 150 "Can't create table" : dans ta table SIEBEL_ST, tu as la clé étrangère si_ref vers le champ si_ref_cas de ta table CAS_CLIENT, qui a elle-même la clé étrangère si_ref_cas vers le champ si_ref de ta table SIEBEL_ST...Erreur de copier-coller ?
__________________
Cordialement. |
|
|
00
|
|
|
#4 |
|
Invité de passage
![]() Inscription : octobre 2006 Messages : 31 ![]() |
Bonjour,
J'ai demandé à ce que le sujet soit fermé mais j'ai du faire une mauvaise manip. Le schéma SQL ici est incomplet, il prend en compte uniquement les 2 tables concernées, d'où l'erreur de création. La clé étrangère ici peut être nulle car c'est une relation 0,n. Sinon en ce qui concerne le problème, c'est une erreur complètement idiote de ma part. Je suis en PHP et dans mon message d'erreur je ne faisais pas afficher la bonne requête Et en fait il manquait bien le nom de ma table devant le champs id_regle. Désolé de cette gêne |
|
|
00
|
|
|
#5 |
![]() ![]() |
Euh...
Qu'appelles-tu 0,n ? Les différents cas possibles pour une association : 1) A -x,n----Associer----x,n- B avec x = 0 ou 1 Cardinalités maximales à n => Table associative. 2) A -0,x----Associer----0,x- B avec x = 1 ou n Cardinalités minimales à n => Table associative. 3) A -0,1----Associer----1,n- B 1 cardinalité minimale à 0 et l'autre cardinalité maximale à n => Table associative. 4) A -1,1----Associer----1,1- B Toutes les cardinalités à 1 => En principe fusion des deux entités ou choix d'une des deux tables issues des entités pour porter la clé étrangère. 5) A -1,1----Associer----x,y- B avec x <> y Cardinalités 1,1 sur une seule entité => Clé étrangère dans la table issue de l'entité située du côté 1,1. 6) A -x,y----Associer----z,u- B C -t,v--------------| Plus de deux entités associées => Table associative. Conclusion : les seuls cas où il n'y a pas de table associative sont ceux où on trouve des cardinalités 1,1.
__________________
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
|
|
|
#6 |
|
Invité de passage
![]() Inscription : octobre 2006 Messages : 31 ![]() |
Arf je ne sais plus écrire.
Voici la relation que j'ai entre ma table SIEBEL_ST et REGLE : SIEBEL_ST 0,1----Associer----0,n REGLE Un cas Siebel est associé à aucune ou une seule règle A une règle peut correspondre aucun ou plusieurs cas Siebel |
|
|
00
|
|
|
#7 |
![]() ![]() |
Tu devrais donc avoir une table associative pour éviter de peupler la table SIEBEL_ST de bonshommes NULL.
__________________
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
|
|
|
#8 |
|
Invité de passage
![]() Inscription : octobre 2006 Messages : 31 ![]() |
Les tables associatives c'est quand tu as une relation x,n - x,n
Je n'en vois pas l'intérêt dans ce cas la. Se serait passer par une table supplémentaire lors des requêtes. |
|
|
00
|
|
|
#9 | |
![]() ![]() |
Parce que bonhomme NULL est à bannir autant que possible, et surtout pour les clés étrangères. Il perturbe le SGBD et nuit aux performances.
C'est expliqué par fsmrel plusieurs fois dans le forum Schema ou le forum Merise mais je ne retrouve pas de messages dans l'instant. Sinon, bis repetita de ma part sur le principe : 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
|
|
|
#10 |
|
Invité de passage
![]() Inscription : octobre 2006 Messages : 31 ![]() |
Donc pour résumé tu conseilles que je crée une table avec uniquement pour valeur si_ref et id_regle ?
|
|
|
00
|
|
|
#11 |
![]() ![]() |
Oui, avec si_ref en clé primaire et id_regle en clé étrangère.
Et au passage, si si_ref est une référence alphanumérique de plus de 3 caractères, c'est une mauvaise clé !
__________________
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
|
Copyright © 2000-2012 - www.developpez.com