81 lines
2 KiB
Markdown
81 lines
2 KiB
Markdown
|
Modelo de datos *abstracto* de devicehub que ayuda a tener una idea de cómo funciona
|
||
|
|
||
|
Recordad que por ser este un proyecto de django, se puede obtener de forma automatizada un diagrama de datos con el comando `graph_models` (más adelante vemos de documentar mejor cómo generarlo)
|
||
|
|
||
|
```mermaid
|
||
|
erDiagram
|
||
|
|
||
|
%% los snapshots/placeholders son ficheros de FS inmutables, se insertan en xapian
|
||
|
%% y via su uuid se anotan
|
||
|
%% placeholders también se pueden firmar (como un spnashot, otra fuente)
|
||
|
EVIDENCE {
|
||
|
json obj "its uuid is the PK"
|
||
|
}
|
||
|
|
||
|
USER {
|
||
|
int id PK
|
||
|
string personal-data-etc
|
||
|
}
|
||
|
|
||
|
%% includes the relevant CHID with algorithm for the device build
|
||
|
EVIDENCE_ANNOTATION {
|
||
|
int id PK
|
||
|
uuid uuid "ref evidence (snapshot,placeholder)"
|
||
|
string key
|
||
|
string value
|
||
|
int type "0: sys_deviceid, 1: usr_deviceid, 2: user"
|
||
|
ts created
|
||
|
int owner FK
|
||
|
}
|
||
|
|
||
|
ALGORITHM {
|
||
|
string algorithm
|
||
|
}
|
||
|
|
||
|
%% todas las anotaciones que tienen CHID
|
||
|
%% y su key es un algoritmo de los que tenemos
|
||
|
|
||
|
%% un device es una evaluación
|
||
|
|
||
|
DEVICE {
|
||
|
string CHID
|
||
|
}
|
||
|
|
||
|
DEVICE_ANNOTATION {
|
||
|
string CHID FK
|
||
|
string key
|
||
|
string value
|
||
|
uuid uuid "from last snapshot"
|
||
|
}
|
||
|
|
||
|
LOT {
|
||
|
int id PK
|
||
|
string name
|
||
|
string code "id alt legacy"
|
||
|
string description
|
||
|
bool closed
|
||
|
int owner FK
|
||
|
ts created
|
||
|
ts updated
|
||
|
|
||
|
}
|
||
|
|
||
|
LOT_ANNOTATION {
|
||
|
string id FK
|
||
|
string key
|
||
|
string value
|
||
|
}
|
||
|
|
||
|
SNAPSHOT ||--|| EVIDENCE: "via workbench"
|
||
|
PLACEHOLDER ||--|| EVIDENCE: "via webform"
|
||
|
|
||
|
EVIDENCE ||--|{ EVIDENCE_ANNOTATION: "are interpreted"
|
||
|
USER ||--|{ EVIDENCE_ANNOTATION: "manually entered"
|
||
|
ALGORITHM ||--|{ EVIDENCE_ANNOTATION: "automatically entered"
|
||
|
EVIDENCE_ANNOTATION }|--|{ DEVICE: "aggregates"
|
||
|
DEVICE }|--|{ LOT: "aggregates"
|
||
|
|
||
|
DEVICE ||--|| DEVICE_ANNOTATION: "enriches data"
|
||
|
LOT ||--|| LOT_ANNOTATION: "enriches data"
|
||
|
```
|