Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
Pages : 1
#1 Re : Général » Alerte de Sécurité PostgreSQL : mettez vos serveurs à jour ! » 30/12/2015 12:02:53
Bonjour,
J'ai un souci de génération de script. Voici ce que j'aimerais faire : un seul script, gigantesque, qui transforme un fichier de données en script que je pourrais injecter dans PostgreSQL.
J'ai un énorme fichier d'objets (oui, des objets simples au sens propre du terme en français !) :
- crayon
- gomme
- stylo
- voiture
etc..
Et je sais que ces objets sont dans un ordre précis de "groupes de couleurs". Pour faire simple, je vous donne un exemple de "groupes de couleurs" :
- bleu et rouge
- bleu et jaune
- orange et bleu
- orange et vert
- orange et rouge
et cet ordre tourne, c'est à dire que quand on arrive au dernier, on repart au premier, et cela pour toute la liste des objets.
Je veux créer :
- une table "couleurs"
- une table "groupe_couleurs" : ce sera une table qui pourra être lié à une ou plusieurs couleurs, et une couleur pourra être reliée à une ou plusieurs groupe_couleurs : c'est donc une many_to_many
- une table "objets" : un objet aura un et un seul groupe de couleurs, ce sera donc une relation one_to_many
DROP TABLE IF EXISTS color;
CREATE TABLE color (
id AUTOINC,
description VARCHAR(50)
)
DROP TABLE IF EXISTS group_colors;
CREATE TABLE group_colors(
id AUTOINC,
description VARCHAR(50)
)
DROP TABLE IF EXISTS group_colors_color;
CREATE TABLE group_colors_color(
group_colors_id INT,
color_id INT,
group_colors_id INT,
CONSTRAINT color_id NOT NULL FOREIGN KEY REFERENCES color(id),
CONSTRAINT group_colors_id NOT NULL FOREIGN KEY REFERENCES group_colors(id)
)
DROP TABLE IF EXISTS obj;
CREATE TABLE obj(
id AUTOINC,
description VARCHAR(50),
group_colors_id INT,
CONSTRAINT group_colors_id NOT NULL FOREIGN KEY REFERENCES group_colors(id)
)
A partir de là, et mon vrai problème est là : dans le même script, ce que je ne sais pas faire, c'est insérer des éléments, par exemple une couleur, puis récupérer son id et le ressortir pour pouvoir lier cette couleur à un ou plusieurs groupes. Même problème juste après : il me faut insérer des objets, et après l'insertion, pouvoir y lier un groupe de couleurs, que j'aurai crée au tout début du script (je rappelle que j'ai > 600000 objets à insérer !)
Comment faudrait-il m'y prendre ?
Merci par avance pour votre aide,
Olivier Pons
Pages : 1