word › 2026-02-01 reajustement de la bdd avant les filtres.docx

2026-02-01 reajustement de la bdd avant les filtres.docx

⬇ Télécharger l'original

La table attribut_groupe_liaison contient les deux champs COLONNE et ORDRE

Les tables qu’on suppriment

variables_group_contact_type

variables_group_objet_type

>> On les remplacent par une seule table

attribut_groupe_liaison

Avant on stockait la COLONNE et l’ORDRE du GROUPE ATTRIBUT (anciennement variable)

Dans la table variables_group

Le problème quand on fait une liaison avec un CONTACT_TYPE ou un OBJET_TYPE,

Alors on est obligé d’avoir la même COLONNE et même ORDRE dans tout le logiciel

On doit pouvoir à chaque liaison, liée un GROUPE X et le mettre en COLONNE 1 et ORDRE 10 pour les OBJET_TYPE_1

Et liée un GROUPE X à un OBJET_TYPE_2 avec une COLONNE DIFFERENTE (1-2-3) et un ORDRE 20…

C’est pourquoi, ORDRE et COLONNE sont dans la table attribut_groupe_liaison

Migration des données des deux tables

Il suffit d’exécuter ces deux requêtes SQL (déjà fait)

INSERT INTO public.attribut_groupe_liaison

(id, attribut_groupe_id, contact_type_id, objet_type_id, colonne, ordre)

SELECT

nextval('public.attribut_groupe_liaison_id_seq'),

ot.variables_group_id,

NULL,

ot.objet_type_id,

vgroupe.colonne,

vgroupe.ordre

FROM public.variables_group_objet_type AS ot

JOIN public.variables_group AS vgroupe

ON vgroupe.id = ot.variables_group_id;

INSERT INTO public.attribut_groupe_liaison

(id, attribut_groupe_id, contact_type_id, objet_type_id, colonne, ordre)

SELECT

nextval('public.attribut_groupe_liaison_id_seq'),

vgroupe.id,

liaison.contact_type_id,

NULL,

vgroupe.colonne,

vgroupe.ordre

FROM public.variables_group vgroupe

JOIN public.variables_group_contact_type liaison

ON vgroupe.id = liaison.variables_group_id;

Modification du comportement quand on crée un GROUPE D’ATTRIBUT (variable)

Quand on crée un GROUPE D’ATTRIBUT, s’il est dans un CONTACT,

Alors on mettra lors de l’INSERTION dans la table VARIABLES_GROUP

Contact= 1

Objet=Null

Quand on crée un GROUPE D’ATTRIBUT, s’il est dans un OBJET,

Alors on mettra lors de l’INSERTION dans la table VARIABLES_GROUP

Contact= Null

Objet=1

Explication

Quand on voudra associer un GROUPE a un contact,

On ne montrera que les groupe avec :

Where contact=1

Quand on voudra associer un GROUPE a un objet,

On ne montrera que les groupe avec :

Where objet=1

UPDATE pour rendre les anciennes groupe valable

Déjà fait

update public.variables_group

set objet=true

where id in (

SELECT attribut_groupe_id FROM public.attribut_groupe_liaison

where objet_type_id is not null

);

update public.variables_group

set contact=true

where id in (

SELECT attribut_groupe_id FROM public.attribut_groupe_liaison

where contact_type_id is not null

);

Loading…
Loading the web debug toolbar…
Attempt #