Open grololo06 opened 3 years ago
Si je me souviens bien, j'ai aussi remarqué l'inverse: projets liés mais aucun sample lié.
Et il faudrait aussi tester le cas où des samples ecopart sont liés à plusieurs projets EcoTaxa. Normalement la règle pour les liens de projets était
EcoPart | EcoTaxa
-----------------
1 | 1 = OK
n | 1 = OK
1 | n = Not OK
Projets EcoTaxa avec n projets EcoPart:
ecotaxa=# select prj.projid, count(pp.pprojid) as cnt from projects prj, part_projects pp where pp.projid = prj.projid group by prj.projid having count(pp.pprojid) > 1;
projid | cnt
--------+-----
22 | 2
30 | 6
35 | 6
41 | 3
43 | 2
45 | 3
63 | 2
149 | 2
579 | 6
3039 | 2
3581 | 2
(11 lignes)
L'inverse ne me semble pas possible structurellement: un projet EcoPart a un seul champ projid
donc c'est 0 ou 1.
En francais: Un projet EcoPart doit être lié à un projet EcoTaxa si au moins un de ses samples est lié à un sample EcoTaxa. En SQL:
select * from part_projects pp where pp.projid is null and exists (select 1 from part_samples ps where ps.pprojid = pp.pprojid and ps.sampleid is not null);
Résultat sur la prod' (anonymisé à la main):Ces 3 projets contiennent des samples liés mais ne sont pas liés eux-même.