MySQL création de BDD : clés primaires/étrangères types ... - SQL/NoSQL - Programmation
Marsh Posté le 20-04-2010 à 15:30:01
Re
Merci de poster le script complet pour les trois tables (en SQL), ce sera plus clair...
Quand tu dis "il refuse", c'est quoi le message d'erreur ?
Pour la 1.3, il faut utiliser un entier, après à toi de voir de quelle taille, selon le nombre d'enregistrements : cf. http://dev.mysql.com/doc/refman/5. [...] types.html
D'après ce lien, il vaut mieux utiliser du decimal pour une valeur monétaire.
Marsh Posté le 20-04-2010 à 16:03:42
Edit : bas du post
Re,
Merci.
Ok pour les identifiants.
Ok pour le Décimal=Monétaire.
Voici ce que j'entre (via MySQL en graphique) :
Spoiler : |
En fait j'ai entré le fk_magasin à la main car en graphique c'était impossible...
Thanks
Edit : J'avais un soucis au niveau du fk qui était vide. Ce problème est corrigé depuis. Du moins ça fonctionne à la main mais pas en graphique, le tout c'est que ça fonctionne.
Marsh Posté le 22-04-2010 à 13:28:18
J'ai maintenant un autre problème. Il s'agit sûrement de logique. Question de DF ou de SQL ou ptête bien de MERISE ...
Enfin bref, j'ai essayé de créer une table "enregistrement" ou "commande" ... Dans laquelle je souhaitais avoir un seq_no (int not null auto_increment) PK, date (date), client_no [table CLIENT], magasin_id FK, bonbon_type FK, prix FK ...
Et le problème que je rencontre à ce moment là est que je peux ajouter les 2 premières clés étrangères mais pas la troisième 'prix' (toutes trois de la table PRIX). Le message d'erreur n'est pas explicite, et aucune ligne n'est indiqué. C'est probablement quelque chose qui ne peut pas se faire dans une BD...
Marsh Posté le 22-04-2010 à 13:48:52
Une FK doit forcément être PK dans une autre table. Or le champ prix n'est pas clé de la table PRIX.
Je pense que tu devrais mettre sur papier toutes les informations nécessaires à ton modèle, ça t'aiderait.
Marsh Posté le 20-04-2010 à 15:08:20
Bonjour,
Si un initié à 2 minutes devant lui, je pense que répondre à mon (mes) problème(s) ne sera pas long. Merci d'avance de votre aide.
Voici une partie de la base de données que je souhaite créer (en test) :
MAGASIN ( magasin_id , magasin_name , magasin_city )
BONBON ( bonbon_type , bonbon_libele , bonbon_price , ?magasin_id )
PRIX ( magasin_id #, bonbon_type # , prix )
Donc, pour un magasin et un type de bonbon il n'y a qu'un prix.
J'essaye de créer ses tables avec mysql mais "il" refuse de faire la clé étrangère avec magasin_id (int ou smallint ne fonctionne pas , ni même varchar(45)) dans la table PRIX.
En revanche pour bonbon_type (varchar(4)) il n'y a pas de soucis.
Question 1 : Est-ce que le problème vient du type de magasin_id ?
Question 1.1 : Si oui, quel type dois-je utiliser ?(Edit, "un entier" : Merci Fred999)Question 1.2 : Sinon, d'où provient le problème ?
Question 1.3 : D'une manière général pour un identifiant ou un numéro de séquence, quel(s) type(s) utiliser ?(Edit : Merci Fred999)Question 2 : Quel type dois-je utiliser pour du monétaire ? (On m'avait dit d'éviter le float...il fût un temps)(Edit : Merci Fred999)Message édité par tony-974 le 20-04-2010 à 16:09:08
---------------
¤ JOE BAR TEAM ¤