[SQL/Oracle] bases de donnees objets <-> je vais craquer

bases de donnees objets <-> je vais craquer [SQL/Oracle] - SQL/NoSQL - Programmation

Marsh Posté le 09-03-2003 à 23:28:42    

Je vais craquer :/
 
J'ai un homework de folie a faire, j'y ai deja passe 50 heures, et me reste encore une moitie a faire, et bloque mechamment :cry:
 
Je me suis deja tape une base de donnees orientee objeta faire sous Objectivity en C++, avec une 15aine de requetes et une douzaine de tables, la, je me tape la meme a faire sous ORACLE :cry:
 
J'ai deux soucis :
 
Quand on a une relation n <-> m sans attributs, on doit declarer une cle etrangere d'un type vers l'autre, et vice versa, nan ?
 
Mon probleme est pas le type ( j'ai trouve comment le faire) mais la creation de table.
 
Je cree la table, il se plaint que l'objet que je reference existe pas. ben oui je l'ai pas encore cree ! Et je trouve pas comment faire.
 
Imaginez deux objets, de type equipage et de type avion. Un avion a plusieurs membres d;equipage, un equipage peux bosser dans differents avions.
 
J'ai declare mes types comme suit :
 

Code :
  1. CREATE TYPE crew_obj
  2. /
  3. CREATE TYPE aircraft_obj AS object(
  4. flight_id flight_id_obj,
  5. make_year NUMBER(9),
  6. capacity NUMBER(9),
  7. headoffice VARCHAR(50),
  8. ssn REF crew_obj
  9. );
  10. /
  11. CREATE TYPE crew_obj AS object(
  12. ssn VARCHAR(50),
  13. address caddress_obj,
  14. name VARCHAR(50),
  15. salary NUMBER,
  16. flight_id REF aircraft_obj
  17. );
  18. /


 
Ca ca va ca marche.
 
Maintenant je declare les tables, et ca coince :cry:  
 

Code :
  1. CREATE TABLE aircraft_tab OF aircraft_obj
  2. /
  3. CREATE TABLE crew_tab OF crew_obj(
  4. primary key(ssn),
  5. foreign key(flight_id) references aircraft_tab)
  6. object id primary key;
  7. CREATE TABLE aircraft_tab OF aircraft_obj(
  8. primary key(flight_id.airlines,flight_id.num),
  9. foreign key(ssn) references crew_tab)
  10. object id primary key;


 
Pourquoi le monde est si cruel ? :cry:
 
Je fais comment ? :cry:


Message édité par Tetedeiench le 09-03-2003 à 23:46:07
Reply

Marsh Posté le 09-03-2003 à 23:28:42   

Reply

Marsh Posté le 09-03-2003 à 23:54:08    

Please j'en ai vraiment besoin la :cry:

Reply

Marsh Posté le 10-03-2003 à 12:11:40    

Je vais peut être dire une connerie, mais commence par créer tes deux tables et ensuite tu poura créer tes clefs étrangère sans problème.


---------------
Si tu regardes ce que le canard mange, tu ne mangeras pas de canard.
Reply

Marsh Posté le 10-03-2003 à 14:11:47    

tetedeiench a écrit :

Je vais craquer :/
 
J'ai un homework de folie a faire, j'y ai deja passe 50 heures, et me reste encore une moitie a faire, et bloque mechamment :cry:
 
Je me suis deja tape une base de donnees orientee objeta faire sous Objectivity en C++, avec une 15aine de requetes et une douzaine de tables, la, je me tape la meme a faire sous ORACLE :cry:
 
J'ai deux soucis :
 
Quand on a une relation n <-> m sans attributs, on doit declarer une cle etrangere d'un type vers l'autre, et vice versa, nan ?
 
Mon probleme est pas le type ( j'ai trouve comment le faire) mais la creation de table.
 
Je cree la table, il se plaint que l'objet que je reference existe pas. ben oui je l'ai pas encore cree ! Et je trouve pas comment faire.
 
Imaginez deux objets, de type equipage et de type avion. Un avion a plusieurs membres d;equipage, un equipage peux bosser dans differents avions.
 
J'ai declare mes types comme suit :
 

Code :
  1. CREATE TYPE crew_obj
  2. /
  3. CREATE TYPE aircraft_obj AS object(
  4. flight_id flight_id_obj,
  5. make_year NUMBER(9),
  6. capacity NUMBER(9),
  7. headoffice VARCHAR(50),
  8. ssn REF crew_obj
  9. );
  10. /
  11. CREATE TYPE crew_obj AS object(
  12. ssn VARCHAR(50),
  13. address caddress_obj,
  14. name VARCHAR(50),
  15. salary NUMBER,
  16. flight_id REF aircraft_obj
  17. );
  18. /


 
Ca ca va ca marche.
 
Maintenant je declare les tables, et ca coince :cry:  
 

Code :
  1. CREATE TABLE aircraft_tab OF aircraft_obj
  2. /
  3. CREATE TABLE crew_tab OF crew_obj(
  4. primary key(ssn),
  5. foreign key(flight_id) references aircraft_tab)
  6. object id primary key;
  7. CREATE TABLE aircraft_tab OF aircraft_obj(
  8. primary key(flight_id.airlines,flight_id.num),
  9. foreign key(ssn) references crew_tab)
  10. object id primary key;


 
Pourquoi le monde est si cruel ? :cry:
 
Je fais comment ? :cry:


 
tu vires tes clefs:

Code :
  1. CREATE TABLE crew_tab OF crew_obj(
  2. primary key(ssn),
  3. object id primary key;
  4. CREATE TABLE aircraft_tab OF aircraft_obj(
  5. primary key(flight_id.airlines,flight_id.num),
  6. object id primary key;


 
puis tu les remets :
alter table add foreign key ...
 
tu fais l'inverse pour détruire tes tables : tu vires les clefs et tu butes les tables.
 
Si tu as des notnull sur les foreign, tu fais les premiers insert avant de poser les clefs.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed