Doesn't sound like these are really rabbits since you couldn't put the same rabbit in more than one cage. ;-)
You'll need a join table for this:
You'd use one record in CagePopulation to record placing specific rabbit stock in a specific cage. The relationships would be defined like this:
Cages::CageID = CagePopulation::CageID
RabbitStock::StockID = CagePopulation::StockID
Here's a working demo of the concept, it matches contracts to companies, but the prinicple is the same: http://www.4shared.com/file/PLhjErzu/Contracts_to_Companies.html
Well they keep track of stock of rabbits...example:
father (white cotton tail) stock# 12345
mother (brown cotton tail) stock# 54321
All the babies they make will get a new stock number, all from the same mother and father rabbit. Follow me?
Kind of a specific inventory for the rabbits while they breed them to keep track of what ones are from where and what parents are making what rabbit lines. Going to check out the example now.