Sto provando a progettare un database per questo caso:
- Le assegnazioni hanno vettori, la relazione è 1: N
- Le assegnazioni hanno invii, la relazione è 1: N
- Le presentazioni hanno esecuzioni, la relazione è 1: N
- Ogni esecuzione ha un vettore.
Logica aziendale
- l'insegnante crea compiti e definisce i vettori di test
- studente carica la sua soluzione, quindi viene creato un record nelle submission
- Dopo aver compilato correttamente l'invio, l'invio viene eseguito con i vettori di test definiti. Ogni esecuzione è un record nelle esecuzioni (un'esecuzione per vettore).
Quindi, dopo un'esecuzione corretta, viene creato un riferimento circolare, ma se la compilazione fallisce, non viene creato alcun record nelle esecuzioni. Il collegamento tra i vettori e le esecuzioni è necessario per il processo di calcolo del punteggio, dove è l'output di riferimento dai vettori rispetto all'output delle esecuzioni.
Quindi, nel mio caso, il riferimento circolare non è persistente, ma dipende dal runtime, quindi è design errato?