The
value of the "ADDRESS_ID" primary key field of the address
record is identical to the
value of the "USER_ID" primary key field of the user
record that the address
record belongs to.
i.e. a user doesn't have an Address table associated with it � it has a single record in the Address table associated with it.
Originally posted by ben oliver:
If only 950 users have Address, then these ADDRESS_ID has 950 entries. Well, that doesn't sound possible if it is a true one-to-one.
The term one-to-one doesn't tell you whether the relationship is mandatory or optional.
Figure 6.8 seems to be a home-baked notation which does not directly express mandatory/optional roles (it's neither Barker Entity Relationship (ER), Information Engineering (IE), or Integrated DEFinition 1 eXtended (IDEF1FX) notation). However it does indicate the foreign key constraint on the address side but no foreign key constraint on the user side � this implies that the existence of a user record is mandatory for an address record, while at the same time the existence of an address record is optional for a user record - this is a one-to-one relationship where the user record doesn't require an address record.
In fact, as you can only insert one record at a time, it's impossible for referential integrity to enforce a one-to-one relationship that is mandatory on both ends � you would have to wrap the hole thing in a transaction and check before the end whether both records exist and force a rollback if they do not.