title: Has-one or belongs-to-many?
body: <p>It appears I just have some brain freeze and I don't get my head around the following.</p>
  
  <p>I am writing a caravan renting/booking system. I have a table with a number of caravans. I also have a table with bookings. So I got it that between caravan and booking is a 1: n relation ship.</p>
  
  <p>So now I need to introduce events (as in which shows are on display for a certain time) and pricing for the caravans on the events.
  And this is where I cannot get my head around. I have a number of unique, non-overlapping events - about 40 each year. Each caravan is priced based on the event.</p>
  
  <p>If I look at pricing&lt;->event only, do I have a 1:1 relation ship? Hm, not really, because when I bring in the caravan, I could have multiple prices per event on <em>different</em> caravans.</p>
  
  <p>Same applies for pricing&lt;->caravan, just the other way round, if I am not mistaken.</p>
  
  <p>What I gathered is that Caravan&lt;->Event form an M: N relationship. This is the real-world representation in that sense that this combination is bookable. To represent this M: N relationship you need to introduce another linking table to break it down to two 1: N and N:1 relation ships. What I learned from <a href="https://dba.stackexchange.com/questions/108742/three-sided-many-to-many-relationship-design">https://dba.stackexchange.com/questions/108742/three-sided-many-to-many-relationship-design</a> is that Price in my case is a property of the relationship Caravan: Event.</p>
  
  <p>I suspect that calling this linking table "Price" is misleading, but technically this represents the item what can be paid for and Price is only an attribute.</p>
  
  <p>This is also the idea later, that this combination of Caravan: Event provides the daterange (from the Event) and then a Booking record can be created pointing to the Caravan.</p>
  
  <p>No more puzzles.</p>