Možeš da staviš tri polja, ali i dalje zavisiš od aplikacije koja koristi bazu. Ako ta tri polja definišeš kao not null, a ne pošalješ bazi tri id-ja, upisaće se vrednost 0. A ako polje definišeš kao NULL, ista priča, samo što ćes u bazi imati NULL umesto 0. Kako god da obrneš, tvoja baza će zavisiti od aplikacije koja je koristi.
E sad, ne znam da li pričamo o školskom primeru, ali u realnom slučaju će doci neki šef i reći: E, ali trebaju nam i projekti na kojima rade 2 ili 4 radnika. U tom slučaju rešenje sa tri kolone za ID radnika ispada veoma nepovoljno.
Takođe, postavlja se pitanje da li u trenutku upisa prvog radnika, ili projekta, ti znaš koji će sve radnici raditi na datom projektu. Ili šta ako se neki radnik razboli/pređe u drugu firmu/umre i ne zna se odmah ko će ga zameniti? Opet dolaziš u situaciju da ne možeš idealno da popuniš podatke u bazi, pa i ta provera mora da ostane na nivou aplikacije, ili nekih stored procedure-a, ili sl.
Pera električar 0637129710, BG, preporučujem.