Re: optionality and cardinality moving from from ERD to TABLES.
Date: Thu, 27 Sep 2001 21:05:31 -0700
Message-ID: <73Qs7.23009$Df4.2515776_at_news20.bellglobal.com>
Thanks JAN and HEINZ (hope this is your name and not your lastname;-) for
your answers .
Since it is impossible to create a REFERENCE to a non unique field in Oracle
, it seems impossible to me to implement your solution,
it seems impossible to me to solve this problem at the table level because
it generates the paradox of beeing able to enter values in both tables at
exaclty the same time (!!!)
in fact let's imagine i can put a constraint on the person table that says
that a corresponding entry has to exist in the car table, well then if I had
to put that entry into the car table first I would have had a value in the
car table which is not already existing in the person table (but this is
against the definition of foreign key which has to be either null or have
ALREADY a corresponding entry in the parent table).
I still do not get it....
maybe databases are not for me :-)
Jan Hidders <hidders_at_REMOVE.THIS.win.tue.nl> wrote in message
news:9ount0$6dj$1_at_news.tue.nl...
> Andrea Fare' wrote:
> > I am a beginner in database design and I am experiencing some problems
> > trying to translate with accuracy an ERD into
> > code.
> >
> > Let's say I have two entities CAR and PERSON and the following
> > relationships exist between them:
> >
> > each CAR MUST be property of one and only one PERSON.
> > each PERSON MAY own one or more CARs.
> >
> > Now as soon as I start creating the tables it seems logical to me to put
a
> > foreign key
> > in the CAR table that references the primary key in the PERSON table.
> > Because each CAR MUST be property of one and only one PERSON it seems
also
> > logical that the foreign key in the CAR table will not be allowed to
have
> > NULL values,but how do I enforce the condition that each PERSON MAY HAVE
a
> > car, or in other words what do I have to put in my tables to make a
> > distinction between this situation and a situation in which each PERSON
MUST
> > have a CAR?( this last sentence could be translated in to a condition
that
> > says that each entry in PERSON TABLE must be referenced at least one
time
> > in the foreign key field of the CAR table).
>
> In theory you might add the following foreign key constraint:
>
> PERSON( [Person_id] ) --> CAR( [Owner] )
>
> In practice this may be a problem because some DBMSs only allow foreign
> key constraints that end in primary keys.
>
> --
> Jan Hidders
Received on Fri Sep 28 2001 - 06:05:31 CEST