Re: How to force two entities to point to the same lookup value

From: Ed Prochak <edprochak_at_gmail.com>
Date: 14 Aug 2006 09:49:42 -0700
Message-ID: <1155574182.397810.46550_at_h48g2000cwc.googlegroups.com>


Giraffe wrote:
> Hi all,
>
> Please bear with me I've tried to make my question as terse as possible,
> whilst not appearing confusing (hopefully I've not failed in this regard).
>
> I'm trying to store a Chart configuration in an Oracle database
> (although I'm hoping that my choice of database will not lead to a
> solution specific to it, since so far my database is not platform, or
> database specific).
>
> One of these chart entities has two or more axes (one x and at least one
> y) related to it, and each axis relates to zero or more plot entities
> (which store plot information such as plot type, line or columns/bars
> etc). these plot entities relate to a specific item of data that can be
> plotted (and relates to a Unit table).
>
> So far I have
>
> relations-> Chart (1-3) Axis (0-many) Plot (Many-1) DataItem
>
> (I'm assuming I've got this relationship right)
>
> How can I now insert a relationship with a Unit entity so that I can
> ensure that Axis and Plot can refer to any unit in the unit relation *so
> long as its the same Unit*. I'd like to enforce at a relational level a
> limitation so that any number of plots can be configured for a specific
> axis so long as they are all of the same unit. For instance income and
> outgoings can both be related to an axis since they share the same unit
> of currency. But weight and income cannot be plots that relate to one
> axis since there are two units here and an axis can refer to only one unit.
>
> It's easy to enforce this in my application but I was hoping to somehow
> put in some kind of constraint at the database level to stop people
> setting up charts with an axis that allows income, weight, and time to
> all be plotted on the same axis.
>
> Perhaps someone has stored a chart configuration in a database before
> and can offer me some insight.
>
> Many thanks,
>
> Giraffe.

It certainly sounds like the Axis entity has a unit associated with it. So Axis and Plot both reference the Unit entity. As Bob said, you might consider the Unit attribute of the Axis as part of its primary key and the Unit attribute of the Plot as part of its PK with Foreign keys on both pointing to Unit and a FK from Plot to Axis.

But this seems all very limiting. What happens if someone wants to plot say growth measurements fro two different studies. Can you plot Yards and Meters on the same axis? How about Dollars and Yen?

I think you model needs a little more thought.

    HTH,
    Ed Received on Mon Aug 14 2006 - 18:49:42 CEST

Original text of this message