MySQL workbench, baza danych w aplikacji WWW

0

Proszę o Pomoc w zadaniu jestem w technikum, bardzo mi zależy gdyż to jest na ocenę.
Zaprojektuj bazę danych dla aplikacji WWW która wymaga poniższych funkcjonalności:
logowania,
rejestracji,
odzyskiwania hasła,
przypisanie roli dla danego użytkownika
przypisanie dostępów do modułów aplikacji WWW
Z góry dziękuje

1

Coś udało Ci się zrobić? Masz pomysł i napotkałeś konkretne trudności?

0

Jestem w pierwszej Technikum. zainstalowałem program, stworzyłem tabele

create table test.uzytkownicy (
    pesel char(11) NOT NULL, 
    imie varchar(30) NOT NULL,
    nazwisko varchar(30) UNIQUE,
    email varchar(30) UNIQUE NOT NULL,
    nr_telefonu char(15) UNIQUE, #+48 999 999 999
    adres_zamieszkania varchar(255),
    haslo varchar(30) NOT NULL, 
    data_rejestracji date  DEFAULT (CURRENT_DATE),
    mezczyzna bit,
    id_roli int default 1,
    PRIMARY KEY (pesel),
    check(LENGTH(haslo) >= 8),
    check(LENGTH(pesel) = 11)
);


create table role_uzytkownikow (
    id int,
    nazwa varchar(30),
    PRIMARY KEY(id)
);



create table moduly (
    id int,
    nazwa varchar(30),
    PRIMARY KEY(id)
);

create table tokeny (
    id int,
    id_uzytkownika int,
    token char(21),
    PRIMARY KEY(id)
);

mam błąd pokazuje mi że tabel uzytkownicy już istnieje i Niewin co dalej robić

1

Wypowiem sie co do projektu.

Nazwa tabeli role_uzytkowników pasuje co do nazwy do zwyczaju tabeli pośredniej w relacji wiele do wielu, ale jest czym innym. Jej prawidłowa nazwa to by była role
Tabela role_uzytkownicy (prawidłowo zaprojektowana) by nie miała stringów, a tylko łączyła klucze

Kod nie weryfikowany, ani nie dopieszczony w szczegółach

create table role (
    idRoli int,
    nazwa_roli varchar(30),
    PRIMARY KEY(idRoli)
);

create table role_uzytkownicy(
    idUzytk int,
    idRoli   int 
    PRIMARY KEY(idUzytk, idRoli)
);

Nie chce mi się wieczorem myśleć, czym jest moduł w twojej wizji, ale prawie na pewno ma być w relacji wiele-do-jeden do roli (rola uprawnia do pewnej ilości modułów). Zależnie od sposobu myślenia, da się też wykazać wiele-do-wiele.
Albo przypisanie modułów wiele-do-wiele do użytkowników, ale to jest podejrzane, demontuje de facto projekt z rolami.

Błędem jest pole id roli w Uzytkowniku, właśnie dokładnie o to nie chodzi
Po to się projektuje systemy z rolami, aby użytkownik mógł mieć wiele ról, i mogło to się zmieniać w czasie

create table test.uzytkownicy (
    pesel char(11) NOT NULL, 
    imie varchar(30) NOT NULL,
    nazwisko varchar(30) UNIQUE,
    email varchar(30) UNIQUE NOT NULL,
    nr_telefonu char(15) UNIQUE, #+48 999 999 999
    adres_zamieszkania varchar(255),
    haslo varchar(30) NOT NULL, 
    data_rejestracji date  DEFAULT (CURRENT_DATE),
    mezczyzna bit,
   skreślamy  ~~id_roli int default 1,~~
    PRIMARY KEY (pesel),
    check(LENGTH(haslo) >= 8),
    check(LENGTH(pesel) = 11)
);
0

Bardzo Dziękuje za pomoc, zadanie zrobiłem jeszcze raz kierując się wskazówkami, jestem wdzięczny.

1 użytkowników online, w tym zalogowanych: 0, gości: 1