"one-to-many" Pour illustrer le problème, je fais un exemple:contrainte unique (w/o Trigger) sur la relation
Un tag_bundle se compose d'un ou plusieurs d'un balises. Une combinaison de balises unique peut correspondre à un tag_bundle unique, et inversement.
tag_bundle tag tag_bundle_relation
+---------------+ +--------+ +---------------+--------+
| tag_bundle_id | | tag_id | | tag_bundle_id | tag_id |
+---------------+ +--------+ +---------------+--------+
| 1 | | 100 | | 1 | 100 |
+---------------+ +--------+ +---------------+--------+
| 2 | | 101 | | 1 | 101 |
+---------------+ +--------+ +---------------+--------+
| 102 | | 2 | 101 |
+--------+ +---------------+--------+
| 2 | 102 |
+---------------+--------+
Il ne peut y avoir une autre tag_bundle ayant exactement la même combinaison de l'étiquette 100 et étiquette 101. Il ne peut y avoir une autre tag_bundle ayant exactement la même combinaison de l'étiquette 101 et étiquette 102.
Comment puis-je assurer cette contrainte unique lors de l'exécution de SQL "simultanément" !! qui est, en même temps pour éviter ajoutant deux faisceaux exactement la même combinaison
tag Ajout d'une simple contrainte unique sur une table ne fonctionne pas, Y at-il d'autre solution que de déclenchement ou de verrouillage explicite.
Je viens seulement de cette façon simple: faire une combinaison de balises en chaîne, et que ce soit une colonne unique.
tag_bundle (unique on tags) tag tag_bundle_relation
+---------------+-----------+ +--------+ +---------------+--------+
| tag_bundle_id | tags | | tag_id | | tag_bundle_id | tag_id |
+---------------+-----------+ +--------+ +---------------+--------+
| 1 | "100,101" | | 101 | | 1 | 101 |
+---------------+-----------+ +--------+ +---------------+--------+
| 100 | | 1 | 100 |
+--------+ +---------------+--------+
mais il ne semble pas une bonne façon :(
Voulez-vous autoriser un tab_id à participer à plusieurs bundles? Par exemple, 'tag_bundle_id = 2' a' tags = (100, 200) '? Qu'en est-il des super-ensembles/sous-ensembles, 'tag_bundle_id = 3 aurait-il des balises (100, 101, 102)'? –
tag_bundle_id = 2 avec les tags = (100, 200) est autorisé, tag_bundle_id = 3 a tags (100, 101, 102) est également autorisé. – elgcom
Alors, oui ou non sur les sous-ensembles? – MkV