Bonjour à tous ,
Dans une table T_POSITION_POS (POS_ID,POS_X_POS_Y,REC_LONG,REC_LARG) représente la position des rectangles dans un dessin 2D.
J'ai volontairement dénormaliser mon modèle pour simplifier la résolution de mon problème (J'ai bien sur une table T_RECTANGLE_REC(REC_ID,REC_LONG_REC_LARG) connectée à T_POSITION_POS.
Je voudrais y ajouter une contrainte supplémentaire "les chevauchements des rectangles sont interdits".
J'ai rajouté un trigger mais je n'arrive pas trouver la requête qui puisse tester si la sufarce sur laquelle va être positionné le nouveau rectangle est libre.
Est-ce que quelqu'un à une idée ?
Merci d'avance
Voici les scripts :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 CREATE TABLE T_POSITION_POS ( POS_ID IDENTITY(1,1) NOT NULL, POS_X INTEGER NOT NULL, POS_Y INTEGER NOT NULL, REC_LONGUEUR INTEGER NOT NULL, REC_LARGEUR INTEGER NOT NULL ) GO ALTER TABLE T_POSITION_POS ADD CONSTRAINT PK_POS_ID PRIMARY KEY CLUSTERED (POS_ID) ON [PRIMARY] GO INSERT INTO T_POSITION_POS (POS_X,POS_Y,REC_LONGUEUR,REC_LARGEUR) VALUES(0,0,20,10) GO INSERT INTO T_POSITION_POS (POS_X,POS_Y,REC_LONGUEUR,REC_LARGEUR) VALUES(10,5,20,10) /* Devrais provoquer une erreur grace au trigger */
Partager