Hi, I have designed a table that contains the following information
about some simple shapes
I need a bit of help writing some SQL (Oracle 8i/9i Enterprise). I
would like to query the database and count, for example, the number of
shapes with triangles in them. For all the data below this would
return 2 (1 for the shape that is a triangle and 1 for the shape that
is a rectangle made up of 2 triangles).
If the design is bad, I would appreciate constructive critism on what
would be a better design - at this stage nothing is set in concrete
(initially I thought this would be an easy query to write using a
CONNECT BY PRIOR construct clause but this doesn't work for
'cyclic/loop data' like that below).
Many thanks
Tony
CREATE TABLE tblshapes(shapeID NUMBER,node NUMBER,nextnode_linkedlist
NUMBER);
- RECTANGLE
- 1---------2
- | |
- | |
- | |
- 4---------3
--
INSERT INTO tblshapes(shapeID,node,nextnode_linkedlist) VALUES
(100,1,4);
INSERT INTO tblshapes(shapeID,node,nextnode_linkedlist) VALUES
(100,2,1);
INSERT INTO tblshapes(shapeID,node,nextnode_linkedlist) VALUES
(100,3,2);
INSERT INTO tblshapes(shapeID,node,nextnode_linkedlist) VALUES
(100,4,3);
- TRIANGLE
- 10
- |\
- | \
- | \
- | \
- 11---12
--
INSERT INTO tblshapes(shapeID,node,nextnode_linkedlist) VALUES
(200,10,12);
INSERT INTO tblshapes(shapeID,node,nextnode_linkedlist) VALUES
(200,11,10);
INSERT INTO tblshapes(shapeID,node,nextnode_linkedlist) VALUES
(200,12,11);
- TWO TRIANGLES ADDED TOGETHER TO MAKE A RECTANGLE
- 20----21
- |\ |
- | \ |
- | \ |
- | \|
- 23----22
--
INSERT INTO tblshapes(shapeID,node,nextnode_linkedlist) VALUES
(300,20,23);
INSERT INTO tblshapes(shapeID,node,nextnode_linkedlist) VALUES
(300,20,22);
INSERT INTO tblshapes(shapeID,node,nextnode_linkedlist) VALUES
(300,21,20);
INSERT INTO tblshapes(shapeID,node,nextnode_linkedlist) VALUES
(300,22,21);
INSERT INTO tblshapes(shapeID,node,nextnode_linkedlist) VALUES
(300,23,22);
Received on Sat Nov 16 2002 - 16:56:29 CST