you don't need to have a discount column in the cart object for this.
Do I need to create a rule for each pair of classes the discount applies to? 
yes.
When you set up the add to cart buttons, one of the cart columns is the ID, each class should have a unique ID.
lets say for example that class ID 22 and class ID 32 should trigger the discount, you would set up the discount rule as:
Triggers:
"Presence of an Item in the cart"
If item "22" "exists" in the cart
AND
"Presence of an Item in the cart"
If item "32" "exists" in the cart
Calculation:
Flat Rate 20
This will discount 20 dollars if both item ID 22 and 32 are added the cart.


