![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 31.01.2008 Ostrzeżenie: (0%) ![]() ![]() |
Właśnie walczę z problemem, podziału tabeli użytkowników na mniejsze. Wszystko dlatego, że w tabeli mają być dwa typy użytkowników, dla przykładu student i wykładowca. Oba typy mają mieć takie same kolumny z informacją o użytkowniku, przy czym dla wykładowców ma być o kilka kolumn więcej z ustawieniami konta (~6 kolumn z danymi typu ENUM 'Y', 'N' opisujące opcje w stylu "wyślij powiadomienie email kiedy nadejdzie nowa wiadomość", przy czym studenci wykorzystują tylko ~2 z nich).
I teraz 4 dopuszczalne rozwiązania: - 1 tablica "uzytkownicy" gdzie wszystkie kolumny opcji niedostępnych dla studentów mają wartość NULL (raczej wykluczam że to poprawne) - 2 tablice "studenci" i "wykładowcy" gdzie studenci mają tylko ~2 kolumny ustawień, a wykładowcy ~6 (z tego ~2 są identyczne jak te u studentów) - 2 tablice "uzytkownicy" i "ustawienia" gdzie tablica ustawienia zawiera klucze obce wg. ID wykladowcow, ale w tablicy uzytkowników też muszą znaleźć się ~2kolumny ustawień które dotyczą wszystkich użytkowników - 3 tablice "uzytkownicy", "ustawienia_s" (dla studentów), "ustawienia_w" (dla wykladowcow) Które z tych rozwiązań jest najbardziej poprawne? Ten post edytował norgoth 3.07.2008, 19:39:53 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 31.01.2008 Ostrzeżenie: (0%) ![]() ![]() |
Dodatkowym problemem jest tutaj kolejna tabela, która właściwie ma być sercem całego systemu. Łączą się w niej w grupy pojedyńczy student i pojedyńczy wykładowca (przy użyciu ich id_studenta i id_wykladowcy), jest tam jeszcze kilka mniej ważnych kolumn, jak nazwa projektu, ocena...
Przy podziale na -studenci -wykladowcy, wyszukując projektu robię odpowiednie joiny i jest wszystko cacy. Jeśli jednak mam tylko użytkowników to potrzebne są 2 joiny do tej samej tablicy, oba z innymi aliasami (inaczej chyba nie da się skonstruować zapytania). Ponadto gdyby wkradł się jakiś błąd danych (błędne ID), to w miejscu gdzie powinien sie pojawić wykładowca mółby się pojawić student i odwrotnie. --- EDIT --- W sumie ten ostatni to może żaden argument, bo w drugą stronę myśląc pojawiłby się tam błędny wykładowca i tylko taki z tego plus, że wykładowca a nie student (IMG:http://forum.php.pl/style_emoticons/default/blinksmiley.gif) A co z administratorami (np. dziekanat), jeśli ich rola ogranicza się tylko do trzymania porządku i nie biorą udziału w "życiu" systemu? Ograniczyć się tylko do jednego konta administratorskiego dla wszystkich, czy utwożyć ich wiele? Czy bezpieczne będzie trzymanie loginów/haseł/danych? administratorów w tej samej tabeli co uzytkownicy czy może inna tabela? A może w ogóle w jakimś pliku na serwerze? Ten post edytował norgoth 3.07.2008, 21:03:21 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 3.10.2025 - 01:42 |