| | 131 | '''Prompt 18:''' |
| | 132 | With the following schema design, would {{{ef_no}}} and {{{es_no}}} have to be entered manually by the user? Can they be generated automatically even though they're not global? |
| | 133 | |
| | 134 | '''AI response 18:''' |
| | 135 | The AI explained that the user should not manually enter these numbers. They are internal partial identifiers, and the application can later assign the next available number inside the selected event edition. |
| | 136 | |
| | 137 | '''Prompt 19:''' |
| | 138 | How should the {{{applications}}} relation reference event editions and event functions if not every application is for a function? |
| | 139 | |
| | 140 | '''AI response 19:''' |
| | 141 | The AI explained that {{{ee_id}}} should always reference {{{event_editions}}}, while {{{ef_no}}} can be nullable. The composite foreign key {{{(ee_id, ef_no)}}} references {{{event_functions}}} only when {{{ef_no}}} is present, so participation applications can reference only an event edition. |
| | 142 | |
| | 143 | '''Prompt 20:''' |
| | 144 | Debated with AI whether {{{young_members}}} table should reference full members indices since a full member would at one point become an alumni or could revert to a young member. |
| | 145 | |
| | 146 | '''AI response 20:''' |
| | 147 | The AI explained that referencing {{{members}}} is more flexible for historical cases, but referencing {{{full_members}}} matches the ER model more strictly. Since the ER model keeps mentorship between !FullMembers and !YoungMembers, the stricter relational representation is {{{mentor_index REFERENCES full_members(student_index)}}}. After back and forth discussion I expressed that the young member is technically automatically mentored by the current HR Coordinator should the full member not be a full member anymore, so the young members table should keep referencing full member indices. The business logic would get implemented later on. |
| | 148 | |
| | 149 | '''Prompt 21:''' |
| | 150 | Change the sample data so that {{{data_load.sql}}} stays consistent with the updated relational schema. |
| | 151 | |
| | 152 | '''AI response 21:''' |
| | 153 | The AI aligned the existing sample data with the updated table names, numeric identifiers, event function/session numbers, application types, and foreign key references, while keeping the same realistic BEST Skopje data requirements from the earlier sample-data prompt. |
| | 154 | |
| | 155 | '''Prompt 22:''' |
| | 156 | Check whether the current {{{schema_creation.sql}}} and {{{data_load.sql}}} are consistent. |
| | 157 | |
| | 158 | '''AI response 22:''' |
| | 159 | The AI checked that every inserted table exists in the schema, every inserted column exists in the corresponding table, and the table names match between the schema and data load scripts. |
| | 160 | |
| | 161 | '''Prompt 23:''' |
| | 162 | Asked the AI model to help me update the TracWikis by only proposing the necessary changes and additions. |
| | 163 | |
| | 164 | '''AI response 23:''' |
| | 165 | The AI kept the existing page text as much as possible and only helped with updating outdated parts: the ER model version reference, the relational schema block, old string-key explanations, old weak-entity descriptions, renamed relations, and references to the new Locations entity. |
| | 166 | |
| | 167 | '''Prompt 24:''' |
| | 168 | Check whether the updated {{{RelationalDesign}}} TracWiki relation list matches the current schema. |
| | 169 | |
| | 170 | '''AI response 24:''' |
| | 171 | The AI checked that the relation names in the TracWiki schema block match the tables created in {{{schema_creation.sql}}}. |
| | 172 | |