This is derived from the SQL generated by sqldbm.com that I simplified because it wasn't generating foreign keys correctly and it seems to me that there's no need to pull in every foreign key from the parent anyway (perhaps I'm mistaken!)
Is there significant value in pulling in every foreign key from the parent and making them part of the child's primary key? Is there a way to automate setting these additional keys? (IE a ticket row being a child of an event row which is a child of a location row and the ticket row also includes location_id and needing to make sure that gets set correctly)
Does anyone see anything in the upper schema diagram that might shoot me in the foot down the road? Not pictured but desired is an additional many-to-many mapping to event questionaire responses also attached to a ticket (IE a registrant providing answers to experience levels in a sport discipline, gear questions, etc as part of their ticket purchase) I am already planning on removing the multiple locations for costs and having option value be the only place cost is found and always having an option value supplied for each event.