13/06/2023 - danielefioretti ha scritto:
estrae i nomi in base alla data di quando hanno eseguito il lavoro. quindi in un intervallo di massimo 35 giorni e un minimo di 28
Cioè se oggi è 13/06/2023, a te interessano le date da 9/5/2023 (oggi -35) e 16/5/2023 (oggi -28). Giusto?
13/06/2023 - danielefioretti ha scritto:
Ho strutturato così le tabelle
OPERAI
Id (autoincrement)
Nome
donne si/no
Uomo si/no
fklavori fk
LAVORI
id (autoincrement)
data
fkOPERAI
Poi ho collegato idoperai con fkoperai
Giusto?
No, perchè…
13/06/2023 - oregon ha scritto:
In ogni caso il db va ripensato tutto, con tabella dei nomi, tabella dei lavori, tabella nomi-lavori con relative relazioni. Solo dopo puoi pensare alle query
Nelle tabelle che hai mostrato ci sono vari errori logici e estetico/formali, questi ultimi servono a comprendersi meglio tra gli utenti del forum.
1. Le tabelle vanno nominate sempre al plurale: OK.
2. I campi ID a numerazione automatica (chiave primaria) vanno dichiarati esplicitamente, ossia IDOperaio e IDLavoro (al singolare).
3. fkOperai rinominalo fkOperaio (almeno).
4. Non ti servono 2 campi Donna e Uomo, ne basta uno (bivalore) Donna/Uomo…di solito si usano le inziali del sesso F/M.
5. Come ha accennato oregon, hai bisogno di 3 tabelle:
Operai
IDOperaio (PK)
Nome
Sesso
Lavori
IDLavoro (PK)
DenominazioneLavoro
LavoriOperai
IDLO (PK)
Data
IDLavoro (FK)
IDOperaio (FK)
Relazioni:
Operai.IDOperaio uno-a-molti LavoriOperai.IDOperaio
Lavori.IDLavoro uno-a-molti LavoriOperai.IDLavoro
I campi di relazione PK e FK possono avere la stessa denominazione.