tworzę aplikację logującą się do dziennika elektronicznego mojej szkoły, a następnie wysyłającą w różne sposoby nowe oceny użytkownikom.
Chciałbym poprosić o odpowiedź na kilka pytań:
Oto schemat bazy danych:
-- -- Structure for table `grades` -- DROP TABLE IF EXISTS `grades`; CREATE TABLE IF NOT EXISTS `grades` ( `userId` int(11) NOT NULL COMMENT 'unikalne Id użytkownika', `subjectId` int(11) NOT NULL COMMENT 'Id danego przedmiotu', `gradeValue` int(1) NOT NULL COMMENT 'Ocena: 1, 1+,2, 2+...,6', `gradeWeight` int(1) NOT NULL COMMENT 'Waga oceny (średnia ważona)', `gradeGroup` varchar(160) NOT NULL COMMENT 'Komentarz nauczyciela, raczej nie dłuższy niż 160 znaków', `gradeTitle` varchar(160) NOT NULL COMMENT 'Komentarz nauczyciela, raczej nie dłuższy niż 160 znaków', `gradeDate` date NOT NULL COMMENT 'Data otrzymania oceny(pobierana z dziennika)', `gradeAbbrev` varchar(3) NOT NULL COMMENT 'Skróty ocen są dwu lub trójliterowe (KK - kartkówka SPR-sprawdzian - itp.)', `gradeTrimester` tinyint(1) NOT NULL COMMENT 'Rok szkolny podzielony jest na 3 części - trymestry', `gradeShown` tinyint(1) NOT NULL COMMENT 'Czy ocena została wysłana do użytkownika.', KEY `userId` (`userId`) ) ENGINE=MRG_MyISAM DEFAULT CHARSET=utf8; -- -- Structure for table `subjects` -- DROP TABLE IF EXISTS `subjects`; CREATE TABLE IF NOT EXISTS `subjects` ( `subjectId` int(11) NOT NULL AUTO_INCREMENT COMMENT 'Id przedmiotu', `subjectName` varchar(30) NOT NULL COMMENT 'nazwa przedmiotu, przykłady: j. polski, robotyka gr.2,chemia, itd. ', PRIMARY KEY (`subjectId`) ) ENGINE=MRG_MyISAM DEFAULT CHARSET=utf8; -- -- Structure for table `users` -- DROP TABLE IF EXISTS `users`; CREATE TABLE IF NOT EXISTS `users` ( `userId` int(11) NOT NULL AUTO_INCREMENT COMMENT 'Iunikalne id użytkownika', `userName` varchar(30) NOT NULL COMMENT 'Nazwa użytkownika w moim systemie', `userPassword` varchar(0) NOT NULL COMMENT 'Hasło użytkownika do mojego systemu', `registerUsername` varchar(30) NOT NULL COMMENT 'Nazwa użytkownika w dzienniku, w formie imie.nazwisko lub imie_nazwisko (starsze roczniki mają tak, rok temu zmieniono system nazywania)', `registerPassword` varchar(100) NOT NULL COMMENT 'Hasło do dziennika, muszę je odczytać do zalogowania', UNIQUE KEY `userId` (`userId`) ) ENGINE=MRG_MyISAM DEFAULT CHARSET=utf8;
1. Jakiego typu danych użyć do przechowywania hasła użytkownika, zakładając szyfrowanie bcryptem?
2, Jakiego typu danych użyć do przechowywania hasła do dziennika, zakładając szyfrowanie kluczem publicznym?
3. Czy w którymś miejscu mogę użyć bardziej pasującego typu danych?
4. Średnią dla przedmiotu/całościową lepiej liczyć samemu czy pobierać z dziennika?
5. Czy warto zapisywać datę pobrania oceny? Jeśli tak, to w jakim typie pola?
6. Ocenę trzymać w bazie w formie 2+ czy konwertować do 2,5? Jakiego pola użyć?
7. Jakieś sugestie?
Z góry dziękuję za odpowiedź,
mlawnik