Mandatory Foreign Keys?

No, it is not necessary to have a foreign key in each table. Foreign keys are pointers to parent tables that are "higher up" in the database. Clearly, tables at the "top" of a database will not have any foreign keys.

Footnote about "Top"

Most corporate databases have a natural top/bottom hierarchical structure to the table organization (as shown above). This is not, however, an absolute requirement of modern database design. The relational database model actually allows complex/circular table organizations that have no natural "top" table. In these cases, it is entirely possible that every table will have one or more foreign keys.

In this example, tblA is above tblB. tblB is above tblC, but tblC it also above tblB. tblC is above tblA, but it is also above itself.

More FAQs