Re: How to model an AND/OR logic by relations ? - Mailing list pgsql-general
From | Steve Boyle \(Roselink\) |
---|---|
Subject | Re: How to model an AND/OR logic by relations ? |
Date | |
Msg-id | 000a01c19f46$061856b0$c55869d5@dualtower Whole thread Raw |
In response to | How to model an AND/OR logic by relations ? (Fritz Lehmann-Grube <lehmannf@math.TU-Berlin.DE>) |
List | pgsql-general |
Fritz, Given that you may have to deal with (.. AND ..) OR (..AND ..) does this imply that you may need to modify relation dependencies to allow a link to either atoms or further dependencies? Otherwise I don't see how you can store the nested conditional statements. P.S. I've never had to do this before (in databases anyway) it looks more like an AI / Parser type problem. It may be worth looking at some parsing code to look at the datastructures they use. steve boyle ----- Original Message ----- From: "Fritz Lehmann-Grube" <lehmannf@math.TU-Berlin.DE> To: <pgsql-general@postgresql.org> Cc: "Erhard Zorn" <erhard@math.TU-Berlin.DE>; "Tilman Rassy" <rassy@math.TU-Berlin.DE> Sent: Thursday, January 17, 2002 10:14 AM Subject: [GENERAL] How to model an AND/OR logic by relations ? > > Hi all, > > I'm setting up a DB in which ( besides normal relations ) an > AND/OR-relation is to be stored: > I have two tables "documents" and "atoms", where a document shall > "depend" upon a logical expression of atoms. > e.g. (please widen your window for this) > ############################################################################ ############### > ### ### > ### document1 "depends" on (atom1 OR atom2) AND (atom1 OR atom3 OR > atom4) AND (atom5) ### > ### ### > ############################################################################ ############### > This is after some normalization - I could also have (.. AND ..) OR (.. > AND ..) > I don't have NOT's. > > My idea is to have have two extra-tables: > > CREATE TABLE or_groups( > id ... primary key, > document_id ... references documents > ); > > CREATE TABLE dependencies( > or_id ... references or_groups, > atom_id ... references atoms > ); > > with ( mapping the example )(please widen your window for this) > > | documents | | or_groups | > | id | name | | id | document_id | > | 1 | document1 | | 1 | 1 | > | | | | 2 | 1 | > | | | | 3 | 1 | > > | dependencies | | atoms | > | or_id | atom_id | | id | name | > | 1 | 1 | | 1 | atom1 | > | 1 | 2 | | 2 | atom2 | > | 2 | 1 | | 3 | atom3 | > | 2 | 3 | | 4 | atom4 | > | 2 | 4 | | 5 | atom5 | > | 3 | 5 | | | | > > Because I'm a novice in Databases and the idea was pure naive intuition > I want to ask, whether this is a standard problem and whether there is a > standard solution. > Am I running into problems ? > Do bad things happen when "documents" and "atoms" are the same table ? > > Greetings and Thanx Fritz > > ---------------------------(end of broadcast)--------------------------- > TIP 3: if posting/reading through Usenet, please send an appropriate > subscribe-nomail command to majordomo@postgresql.org so that your > message can get through to the mailing list cleanly >
pgsql-general by date: