From: | "Grigoriy G(dot) Vovk" <grigoriy(dot)vovk(at)linustech(dot)com(dot)cy> |
---|---|
To: | Josh Berkus <josh(at)agliodbs(dot)com> |
Cc: | Renato De Giovanni <rdg(at)viafractal(dot)com(dot)br>, <pgsql-sql(at)postgresql(dot)org> |
Subject: | Re: Meta integrity |
Date: | 2001-07-25 17:49:13 |
Message-ID: | 20010725204642.Q750-100000@callisto.internal.linustech.com.cy |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-sql |
Yes, its not a task for _relation_ dbms.
I am database developer, I like rdbms, but now I think that I should start
to use LDAP for these kind of tasks.
What people can say?
Jul 25, 08:22 -0700, Josh Berkus wrote:
> Renato,
>
> > ...will only guarantee that each attribute points to an existent
> > object
> > but it will not care about the object's class. Question is: how could
> > I
> > also enforce this kind of "meta integrity"? The following table
> > definition came to my mind, but its an illegal construction:
> >
> > CREATE TABLE specific_attribute (
> > id INTEGER NOT NULL,
> > value TEXT NOT NULL,
> > object_id INTEGER NOT NULL,
> > PRIMARY KEY (id),
> > FOREIGN KEY (object_id, 'X') REFERENCES object (id, class_id)
> > );
>
> This is a fairly common problem that has no solution using REFERENCES,
> either in Postgres or in SQL 99. You basically have two choices:
>
> 1. The rigorous -- write your own Triggers and Constraints to enforce
> this kind of integrity, including INSERT, UPDATE, and DELETE triggers on
> the various tables. Between postgresql.org and Roberto Mello's sight,
> there's quite a bit of material on triggers.
>
> 2. The simple -- write functions to perform inserts, updates and deletes
> on these tables. Put the relation into those functions, and make users
> use those functions instead of direct SQL command access.
>
> I took the second approach to solve a similar problem, because I had
> quite a number of other business rules I needed to apply, and adding the
> special relationship rule was only one more.
>
> -Josh
>
>
>
> ______AGLIO DATABASE SOLUTIONS___________________________
> Josh Berkus
> Complete information technology josh(at)agliodbs(dot)com
> and data management solutions (415) 565-7293
> for law firms, small businesses fax 621-2533
> and non-profit organizations. San Francisco
>
my best regards,
----------------
Grigoriy G. Vovk
From | Date | Subject | |
---|---|---|---|
Next Message | frederic romagna | 2001-07-25 17:55:53 | about cursor |
Previous Message | Stephan Szabo | 2001-07-25 16:26:08 | Re: Meta integrity |