Mam do zbudowania baze danych, lecz ta która stworzylem jest nie czytelna jak i mam problemy z zapytaniami.Czy moge prosić o sugestie .

Program służy do obsługi fimy. Program "kadry i płace"

A to co mam on robić :
Główne funkcje programu. Wpisywanie nowych pracowników - Dodawanie danych osobowych (Dane adresowe, NIP , PESEL )



Przydzielanie pracownikom odpowiedniego stanowiska

Kazdemu pracownikowi obliczanie płac

Wyplata podana w sumie brutto

Pomnożenie sumy wypłaty brutto przez premie ustaloną

Odciągniecie podatku

Pokazanie pracownikowi ostatecznej sumy wypłaty ( netto)




Oto baza danych moja.Zrobiona przeze mnie.
  1. CREATE TABLE place
  2.  
  3. (id_place INT NOT NULL AUTO_INCREMENT,
  4. brutto FLOAT NULL,
  5. premia FLOAT NULL,
  6. dodatek FLOAT NULL,
  7. netto FLOAT NULL,
  8. PRIMARY KEY(id_place)
  9. );
  10.  
  11. CREATE TABLE Dane
  12. (id_dane INT NOT NULL AUTO_INCREMENT,
  13. ulica VARCHAR(255) NULL,
  14. [LEFT] miasto VARCHAR(255) NULL,
  15. kod INT NULL,
  16. nip INT NOT NULL,
  17. telefon INT NOT NULL,
  18. PRIMARY KEY(id_dane)
  19. );
  20. [/LEFT]
  21. CREATE TABLE Stanowiska (
  22. id_stanowiska INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
  23. place_id_place INT NOT NULL,
  24. d_place INTEGER UNSIGNED NULL,
  25. stanowski VARCHAR(255) NOT NULL,
  26. PRIMARY KEY(id_stanowiska, place_id_place),
  27. INDEX Stanowiska_FKIndex1(place_id_place)
  28. );
  29.  
  30. [LEFT]CREATE TABLE Pracownicy (
  31.  
  32. id_pracownicy INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
  33. Stanowiska_place_id_place INT NOT NULL,
  34. [/LEFT]Stanowiska_id_stanowiska INTEGER UNSIGNED NOT NULL,
  35. id_dane INTEGER UNSIGNED NOT NULL,
  36. id_stanowiska INTEGER UNSIGNED NOT NULL,
  37. nazwisko VARCHAR(255) NULL,
  38. imie VARCHAR(255) NULL,
  39. data_ur DATE NULL,
  40. [LEFT] pesel INTEGER UNSIGNED NOT NULL,
  41. PRIMARY KEY(id_pracownicy, Stanowiska_place_id_place, Stanowiska_id_stanowiska),
  42. INDEX Pracownicy_FKIndex1(Stanowiska_id_stanowiska, Stanowiska_place_id_place)[/LEFT]
  43. [LEFT] [/LEFT][LEFT]); [/LEFT]