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
Coś udało Ci się zrobić? Masz pomysł i napotkałeś konkretne trudności?
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ć
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)
);
Bardzo Dziękuje za pomoc, zadanie zrobiłem jeszcze raz kierując się wskazówkami, jestem wdzięczny.