Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2446 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  mettre des references dans une table

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

mettre des references dans une table

n°970342
Gravastar
Dude elle est où ma caisse ?
Posté le 03-02-2005 à 11:03:15  profilanswer
 

Bonjour tout le monde,
 
Il fut un temps ou j'ai eu des cours de base de donnees orientees objet (sous oracle). Bref, la je dois creer une base mysql et je n'arrive pas a trouver l'equivalent des references. Je voudrais par exemple avoir cette base :
 ___________________        _____________________
|                              |      |                                 |
|    RESERVATION        |      |        CLIENT                |
|___________________|      |_____________________|
| pk id : varchar(9)      |      | pk nom                       |
|    ...                       |      |    ...                           |  
|    client : CLIENT       |      |    res : RESERVATION    |
|___________________|      |_____________________|
 
Pouvez-vous me dire comment faire ou me donner un lien ? je n'ai rien trouve sur ce genre de tuple en mysql...  :sweat:  
 
Voila, c'etait une question sans doute tres bete, mais j'avoue que j'aurais bien besoin d'aide la.

mood
Publicité
Posté le 03-02-2005 à 11:03:15  profilanswer
 

n°973279
Gravastar
Dude elle est où ma caisse ?
Posté le 06-02-2005 à 15:07:45  profilanswer
 

[:ass_kicker57]

n°973284
glod 2
Votre trajet, notre projet.
Posté le 06-02-2005 à 15:21:49  profilanswer
 

C'est simple, y a pas en mysql :D

n°973646
petitpata
Posté le 06-02-2005 à 23:07:55  profilanswer
 

Gravastar a écrit :

Bonjour tout le monde,
 
Il fut un temps ou j'ai eu des cours de base de donnees orientees objet (sous oracle). Bref, la je dois creer une base mysql et je n'arrive pas a trouver l'equivalent des references. Je voudrais par exemple avoir cette base :
 ___________________        _____________________
|                              |      |                                 |
|    RESERVATION        |      |        CLIENT                |
|___________________|      |_____________________|
| pk id : varchar(9)      |      | pk nom                       |
|    ...                       |      |    ...                           |  
|    client : CLIENT       |      |    res : RESERVATION    |
|___________________|      |_____________________|
 
Pouvez-vous me dire comment faire ou me donner un lien ? je n'ai rien trouve sur ce genre de tuple en mysql...  :sweat:  
 
Voila, c'etait une question sans doute tres bete, mais j'avoue que j'aurais bien besoin d'aide la.


Les contraintes référentielles n'existent pas dans le format de tables MyIsam sous Mysql par contre tu peux y arriver en utilisant le type de table InnoDB http://www.innodb.com/index.php

n°973799
moi23372
Posté le 07-02-2005 à 10:24:17  profilanswer
 

FAUX
les contraintes d'intégrités référenciel existe dans MYSQL en tout cas dans le nouveau MYSQL il est dedans j'en suis certain...
 
par contre même si la contrainte d'intégrité référenciel n'existe pas dans MYSQL (ancienne version), il est cependant possible de similer la contrainte
 
CREATE TABLE CLIENT
(
nom varchar2(20)
);
 
CREATE TABLE RESERVATION
(
id varchar2(9),
nomcli varchar2(20) CONSTRAINT nomcontrainte CHECK (nomcli IN (SELECT nom FROM CLIENT)
);
 
ou (avec contrainte d'intégrité)
 
CREATE TABLE RESERVATION
(
id varchar2(9),
nomcli varchar2(20) CONSTRAINT nomcontrainte REFERENCES CLIENT(nom)
);


Message édité par moi23372 le 07-02-2005 à 10:25:55
n°974013
petitpata
Posté le 07-02-2005 à 13:51:44  profilanswer
 

moi23372 a écrit :

FAUX
les contraintes d'intégrités référenciel existe dans MYSQL en tout cas dans le nouveau MYSQL il est dedans j'en suis certain...
 
par contre même si la contrainte d'intégrité référenciel n'existe pas dans MYSQL (ancienne version), il est cependant possible de similer la contrainte
 
CREATE TABLE CLIENT
(
nom varchar2(20)
);
 
CREATE TABLE RESERVATION
(
id varchar2(9),
nomcli varchar2(20) CONSTRAINT nomcontrainte CHECK (nomcli IN (SELECT nom FROM CLIENT)
);
 
ou (avec contrainte d'intégrité)
 
CREATE TABLE RESERVATION
(
id varchar2(9),
nomcli varchar2(20) CONSTRAINT nomcontrainte REFERENCES CLIENT(nom)
);


Le nouveau Mysql, c'est une version alpha ou beta encore non ? ...
Sinon c'est joli ta simulation, mais quand tu as besoin que le SGBD cascade ca fonctionne pas super ^^

n°974443
glod 2
Votre trajet, notre projet.
Posté le 07-02-2005 à 18:26:38  profilanswer
 

oui, c'est bien beau de simuler mais bon :o Pis utiliser une version beta en production bof quoi.
Ma recommandation : dégager mysql dés que l'utilisation de la base dépasse le cadre de l'entrepôt de données. (données sans relations entre elles) et se tourner vers d'autres bases gratos du style firebird ou postgres :)

n°974504
moi23372
Posté le 07-02-2005 à 19:01:13  profilanswer
 

perso je l'ai jms testé en mysql, c'est mon professeur d'SGBD qui nous en parlé. Donc sincèrement je ne l'ai pas encore utilisé sous mysql étant donné que je bosse sous ORACLE 9i à l'école. Donc le mieux si tu veux vraiment avoir une contrainte d'intégrité, c'est de le faire avec le check.
 
bien sure tu n'auras pas droit à l'option CASCADE! c'est logique, celle-ci ce précise également dans d'autre SGBD, il n'est généralement pas mis par défaut.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  mettre des references dans une table

 

Sujets relatifs
Mettre un nom aléatoire à un fichier uploadé.Table de hachage contenant des listes
site en css pour habitué aux "table" - compatibilité navigateurs[SQL] Copie d'un enreg d'une table vers une autre table
update: pb de requete de modification de table[fs] ext2 et table d'inodes
[Access]supprimer donnée dans une table et archiver dans une autre[MySQL] Update d une table sous une seule condition
[MSSQL] table temporaire et procedure stockee[MySQL]Ou mettre le fichier a loader ?
Plus de sujets relatifs à : mettre des references dans une table


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR