Apple WebObjects 3.5 User Manual

Page 64

Advertising
background image

Chapter 3

Creating a WebObjects Database Application

64

MOVIE_ROLE table having a MOVIE_ID column. In the MOVIE table,
MOVIE_ID is a primary key, while in MOVIE_ROLE it’s a foreign key.

A primary key is a column or combination of columns whose values are
guaranteed to uniquely identify each row in that table. For example, each row
in the MOVIE table has a different value in the MOVIE_ID column, which
uniquely identifies that row. Two movies could have the same name but still be
distinguished from each other by their MOVIE_IDs.

A foreign key matches the value of a primary key in another table. The purpose
of a foreign key is to identify a relationship from a source table to a destination
table. In the following diagram, notice that the value in the MOVIE_ID column
for both MOVIE_ROLE rows is 501. This matches the value in the
MOVIE_ID column of the “Alien” MOVIE row. In other words, “Ripley”
and “Ash” are both roles in the movie “Alien.”

Suppose you fetch a Movie object. Enterprise Objects Framework takes the
value for the movie’s MOVIE_ID attribute and looks up movie roles with the
corresponding MOVIE_ID foreign key. The framework then assembles a
network of enterprise objects that connects a Movie object with its MovieRole
objects. As shown below, a Movie object has a vector of its MovieRoles, and the
MovieRoles each have a Movie.

1028

Ripley

501

501

Alien

1132

Ash

501

703

Toy Sto

ry

TALENT

_ID

MOVIE_ROLE

MOVIE_ID

MOVIE_ID

TITLE

MOVIE_ROLE

MOVIE

Advertising