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
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;
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
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
);