Sto pianificando di creare una webapp per l'interazione con il pubblico dal vivo simile a Slido come progetto di pratica / divertimento.
Gruppi di utenti : amministratori e utenti anonimi
Amministratori :
-
login
-
creare un evento (definire il periodo dell'evento e il codice / nome dell'evento univoco)
-
modifica / elimina le domande degli utenti
-
evidenzia le domande degli utenti (fino a 3 domande per evento)
Utenti anonimi :
-
partecipare all'evento digitando il codice / nome dell'evento
-
unisciti all'evento se il periodo dell'evento corrisponde all'ora corrente
-
fai domande nella pagina dell'evento
-
vedi gli aggiornamenti in tempo reale delle domande poste da altri utenti
-
ordina le domande poste per ora / più upvote
-
può upvotare / downvotare altre domande
Per tale applicazione, NoSQL o SQL db saranno una scelta migliore?
Grazie in anticipo per i tuoi consigli.
Aggiornamenti!
Di seguito sono riportati i modelli di dati per lo schema relazionale e non relazionale che ho elaborato. piacerebbe avere un feedback su di esso:
Schema relazionale:
Gli amministratori
-
id (chiave primaria seriale)
-
login
-
Password
-
nome
Eventi
-
id (chiave primaria seriale)
-
event_name
-
EVENT_CODE
-
start_time
-
end_time
-
admin_id (riferimento a chiave esterna admin.id)
Utenti
-
id (chiave primaria seriale)
-
nome
-
e-mail
Domande
-
id (chiave primaria seriale)
-
event_id (foreign key reference events.id)
-
post_time
-
user_id (foreign key reference users.id)
-
contenuto
Question_upvote
-
id (chiave primaria seriale)
-
question_id (foreign reference reference questions.id)
-
user_id (foreign key reference users.id)
Question_highlight (utilizzato dagli amministratori)
-
id (chiave primaria seriale)
-
question_id (foreign reference reference questions.id)
Schema non relazionale:
Documento degli amministratori
{
uid:
login:
password:
name:
events: [event1, event2 ...]
}
Documento di eventi
{
uid:
eventName:
eventCode:
startTime:
endTime:
adminId:
users: [user1, user2, ...]
highlightedQuestions: [question1, question2, ...]
}
Documento delle domande
{
uid:
eventId:
userId:
content:
userLikes: [user1, user2, ...]
postTime:
}
Documento utenti
{
uid:
name:
email:
}