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