---
# System prepended metadata

title: Progettazione Logica

---

# Progettazione Logica

## Schema del database

`Run`{Sha (associato al workflow), WorkflowName, CreatedAt, Branch, Event, Workflowid(id del workflow, contiene più run), ++Runid++, Conclusion}

`Job`{++Jobid++, --RunId--, JobName, Conclusion, StartedAt}

`Commit`{Author, ++Sha++, Description}

## Tabelle di relazione

### Run

|Nome attributo|Tipo|Primo/NOT NULL/Univocità|Vincolo|
|---|---|---|---|
|Sha|Stringa||Deve esistere un commit con questo sha|
|WorkflowName|Stringa|NOT NULL||
|CreatedAt|Date|NOT NULL||
|Branch|Stringa|NOT NULL||
|Event|Stringa|NOT NULL||
|Workflowid|Numero long|NOT NULL||
|Runid|Numero long|Primo||
|RunNumber|Numero long|NOT NULL|
|Conclusion|Stringa|NOT NULL|Vincolo di referenza esterna con i Job che la compongono, se almeno un Job fallisce, la Run fallisce.|


### Job

|Nome attributo|Tipo|Primo/NOT NULL/Univocità|Vincolo|
|---|---|---|---|
|Jobid|Numero long|Primo||
|Runid|Numero long|NOT NULL
|StartedAt|Date|NOT NULL|Vincolo referenza esterna con Run, non deve essere precedente a CreatedAt|
|JobName|Stringa|NOT NULL||
|Conclusion|Stringa|NOT NULL||


### Commit

|Nome attributo|Tipo|Primo/NOT NULL/Univoco|Vincolo|
|---|---|---|---|
|Sha|Stringa|Primo||
|Author|Stringa|NOT NULL||
|Description|Stringa|NOT NULL||