Read the idea
Open the reading →A customer can exist before making a booking. Every booking belongs to exactly one customer. State each direction separately: a customer has zero or many bookings; a booking has exactly one customer.
Put customer_id on bookings, the many side. NOT NULL follows “exactly one”; REFERENCES preserves the relationship to customers(id). Data observed today does not establish all future business rules.
A booking can include several kayaks, and a kayak can appear in many bookings over time. Resolve that many-to-many relationship using booking_items, with one row for each booking–kayak pair.
Worked example
customers: zero to many bookings. bookings: exactly one customer. bookings.customer_id is a required FK. booking_items can use PRIMARY KEY (booking_id, kayak_id).
Your task
Write both cardinality sentences for customer–booking, locate the FK, and propose a key for booking_items that prevents the same kayak appearing twice in one booking.
Give me a hint
Use the question’s requirements as your checklist. State an assumption if the wording does not establish a rule.
Compare with a worked answer
customers: zero to many bookings. bookings: exactly one customer. bookings.customer_id is a required FK. booking_items can use PRIMARY KEY (booking_id, kayak_id).
Using an answer is useful practice. Record what you learned; it does not demonstrate independent mastery.