CritterID is a data field that not only is a primary key, but also a number which automatically increments itself for each new record. Each CritterID will be unique and always counting forwards.

There may be situations where you delete a Critter, so CritterID may not always be one number after the other. So a CritterID of 13 may not be the 13th record in the database if Critters before it got deleted. It just holds a value of 13, which is unique to that Critter record. No other Criter may have that CritterID of 13, and CritterID cannot be blank or nothing, it has to be a valid number. These are characteristics of a Primary Key with an AutoNumber property. Some databases call the AutoNumber an Identity, it is basically the same thing.

You can later create a CritterShelf table having a ShelfID, and a CritterID field that goes back to the Critter table and ShelfID going back to Shelf. Matching the CritterID in CritterShelf to a CritterID in Critters will tell you which Shelf the Critter is on. This is called a Foreign Key, also may be called an External Key. When you place a Critter on a shelf, you have the database copy the CritterID from Critter and put it into CritterShelf using the correct ShelfID and the CritterID of the Critter you are moving. Critter and CritterShelf tables are linked by CritterID in both tables. CritterID is an Autonumber in Critter, but not in CritterShelf. This is because CritterShelf holds a copy of CritterID and doesn't need the AutoNumber property. It has to match a CritterID in Critter. It is Indexed, but not a Primary Key in CritterShelf, because it is a Foreign Key pointing to Critter and CritterID in that table.

If you enforce Referencial Integrity between Critter and CritterShelf, then when you delete a Critter, the matching record in CritterShelf gets deleted too for that CritterID you are deleting. Because if you get rid of a critter it no longer is on a shelf.