Plat\al 2 Events ================ Events are a way to organisze events with this website. Users may have to pay to participate in an event. Events have optional sub-events which can be free or not free. Events and sub-events may have differents price options (e.g. student or not) Current implementation ---------------------- - Event: - contains all the global properties of an event (visibility...) - has a foreign key to an EventPart that is the main event part. - EventPart data specific to a part of an event (name, limits, price options) - they have a foreign key to the containing event. - Price options with a name and a cost as well as a foreign key to an EventPart - Registration of a user to one element of a price option (5 tickets make 5 Registrations) The Event has no price options for the global event: it is handled by the main EventPart. (this is done to not duplicate code for main price options and part price options) Alternate proposed implementation --------------------------------- Same thing as above except that price options are only for the main event. That way the coee is a bit less ugly. Alternate proposed implementation --------------------------------- Have EventParts have a foreign key to the main event part. The "root" of the event becomes the main part.