Ho bisogno di progettare un'interfaccia utente per modificare un documento di ricerca, non ho abbastanza conoscenza del dominio di ricerca, ma ho comunque cercato di fare del mio meglio e ho pensato di progettare uno schema normalizzato. Sto descrivendo il requisito di seguito.
Formato carta campione:
Sotto la carta che mostra 4
autori affiliati a 3
diverse organizzazioni.
Decoupling Sensor Networks from Rasterization in Congestion Control
Alice Abaraham1 Bill Byron2 Christie Chang1, 2 David Doel3
1 University of Utopia
2 Neverland Institute of Technology
3 University of Argleton
La pagina dovrebbe consentire all'utente di:
- Inserisci il titolo
- Aggiungi l'autore
- Aggiungi l'affiliazione
- Associa autore con la corrispondente affiliazione
- Riordina autori
- Elimina autore
- Salva le informazioni correnti
Il documento può o non può avere autore, ogni autore può o non può avere affiliazione.
Ora la parte confusa:
Le affiliazioni devono essere numerate automaticamente, a partire da 1
per il primo autore e così via. Il riordino dell'autore dovrebbe anche rinumerare le affiliazioni. Ogni affiliazione deve avere un autore associato.
L'operazione di salvataggio deve persistere nel JSON.
I miei dati normalizzati:
entities: {
authors: {
byId: {
1: {id: 1, name: "Alice Abaraham"},
2: {id: 2, name: "Bill Byron"},
3: {id: 3, name: "Christie Chang"},
4: {id: 4, name: "David Doel"}
},
allIds: [1, 2, 3, 4]
},
organizations: {
byId: {
1: {id: 1, name: "University of Utopia"},
2: {id: 2, name: "Neverland Institute of Technology"},
3: {id: 3, name: "University of Argleton"}
},
allIds: [1, 2, 3]
},
authorOrganization: {
byId: {
1: {id: 1, authorId: 1, organizationId: 1}
2: {id: 2, authorId: 2, organizationId: 2}
3: {id: 3, authorId: 3, organizationId: 1}
4: {id: 4, authorId: 3, organizationId: 2}
5: {id: 5, authorId: 4, organizationId: 3}
},
allIds: [1, 2, 3, 4, 5]
},
papers: {
byId: {
1: {
id: 1,
title: 'Paper title',
authors: [1, 2, 3, 4],
affiliations: {
byId: {
1: {id: 1, authorId: 1, organizationIds: [1]},
2: {id: 2, authorId: 2, organizationIds: [2]},
3: {id: 3, authorId: 3, organizationIds: [1, 2]},
4: {id: 4, authorId: 4, organizationIds: [3]}
},
allIds: [1, 2, 3, 4]
}
}
},
allIds: [1]
}
}
Aggiornamento 1:
La forma dello stato di normalizzazione è ispirata da qui
Aggiornamento 2:
Trovo che molte persone siano confuse, dalla comprensione di author
e organization
sono correlate tramite la relazione m2m e l'affiliazione è qualcosa di specifico per un articolo.
Domande:
- La rappresentazione è corretta per l'affermazione del problema sopra?
- La rappresentazione fornita scalerebbe per milioni di migliaia di autori?
- Il riordino dell'autore dovrebbe anche rinumerare le affiliazioni, come?