Changes between Version 10 and Version 11 of ERModel
- Timestamp:
- 09/02/26 20:03:08 (4 days ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
ERModel
v10 v11 1 = Entity-Relationship Model v.1 0=1 = Entity-Relationship Model v.11 = 2 2 == Diagram == 3 3 4 [[Image(wiki:ERModel:ERModel_v1 0.png)]]4 [[Image(wiki:ERModel:ERModel_v11.png)]] 5 5 == Data requirements == 6 6 … … 153 153 * needed_no_volunteers: numeric, required, non-negative integer. 154 154 155 ==== !EventFunctionTypes ==== 156 157 !EventFunctionTypes represents reusable event function types, such as Main Organiser, PR Responsible, FR Responsible, IT Responsible, Design Responsible, Logistics Responsible, Participants Responsible, Academic Responsible, or similar function types. 158 159 * '''Candidate keys:''' eft_id and eft_name. eft_id is chosen as the primary key because function type names are text labels. eft_name is unique. 160 * '''Attributes:''' 161 * eft_id: numeric identifier, required, unique. 162 * eft_name: text, required, unique. 163 155 164 ==== !EventFunctions ==== 156 165 157 !EventFunctions represents available organizing functions for a specific event edition, such as Main Organiser, PR, FR, Logistics, Design, IT, HR, or another event-specific function. It is modeled as a weak entity dependent on !EventEditions because available functions are defined per event edition and may differ between event editions. 166 !EventFunctions represents available organizing functions for a specific event edition, such as Main Organiser, PR, FR, Logistics, Design, IT, HR, or another event-specific function. It is modeled as a weak entity dependent on !EventEditions because available functions are defined per event edition and may differ between event editions. The reusable function name is stored through !EventFunctionTypes. 158 167 159 168 * '''Candidate keys:''' the chosen primary key is the event edition key + ef_no, where ef_no is the partial key inside one event edition. 160 169 * '''Attributes:''' 161 170 * ef_no: numeric, required, unique inside one event edition. 162 * ef_name: text, required.163 171 164 172 ==== Applications ==== … … 203 211 ==== for_function ==== 204 212 205 for_function connects Applications to !EventFunctions. It represents applications that target a specific available event function for an event edition. It is needed so that an accepted application can imply that the student became part of the event organization in that function. 213 for_function connects Applications to !EventFunctions. It represents applications that target a specific available event function for an event edition. 214 215 ==== holds_event_function ==== 216 217 holds_event_function connects Members to !EventFunctions. It represents the actual event function slots held by members, separately from the applications they submitted. 206 218 207 219 ==== for_participation ==== … … 212 224 213 225 available_for connects !EventFunctions to !EventEditions. It is the identifying relationship that states which functions are available for a specific event edition. It is needed because the same function name can appear in many event editions, but the available role belongs to one concrete edition. 226 227 ==== is_of_function_type ==== 228 229 is_of_function_type connects !EventFunctions to !EventFunctionTypes. It represents that every concrete event function slot has one reusable function type. 214 230 215 231 * '''Candidate keys:''' the relationship identifies !EventFunctions through event edition key + ef_no. … … 263 279 * attendance_status: text, required when attendance is checked, controlled value such as present, absent, excused, late, online, left early or not checked. 264 280 281 ==== required_attendance ==== 282 283 required_attendance connects Members to !ActivitySessions. It represents that a member is required to attend a specific activity session. 284 265 285 ==== announces_absence ==== 266 286 267 announces_absence connects Members to !ActivitySessions. It represents members announcing that they will be absent from an activity session , with a reason and time of announcement. It is needed for processes where absence from mandatory or important activities should be communicated before the session.287 announces_absence connects Members to !ActivitySessions. It represents members announcing that they will be absent from an activity session where their attendance is required, with a reason and time of announcement. 268 288 269 289 * '''Candidate keys:''' member student_index + activity session key is the natural primary key if a member can have only one active absence announcement per session. … … 327 347 ||v09||Removed "required_attendance" relationship after realising it is redundant.|| 328 348 ||v10||Changed string primary keys to numeric identifiers where needed. Renamed the student key from index to student_index. Added Locations as an entity. Changed !ActivitySessions, !EventEditions, !EventSessionTypes, !EventSessions and !EventFunctions to use numeric identifiers/partial numeric identifiers. Changed !EventSessions, !EventEditions and !ActivitySessions to not be weak entities. Renamed !CoreTeamFunctions to !EventFunctions and renamed the relationship between !FullMembers and !OrganizationalFunctions from is to holds_function. Changed if some relationships are mandatory or not based on logic.|| 349 ||v11||Added !EventFunctionTypes so reusable event function names are not repeated inside !EventFunctions. Added holds_event_function to separate actual event function holders from applications. Added required_attendance between Members and !ActivitySessions so mandatory attendance can be represented separately from ordinary participation and absence announcements.|| 329 350 330 351 == AI Use ==
