Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL] Normalizacja bazy danych
radabus
post
Post #1





Grupa: Zarejestrowani
Postów: 19
Pomógł: 2
Dołączył: 17.08.2009

Ostrzeżenie: (0%)
-----


Męczę się nad (raczej banalnym) problemem z normalizacją bazy danych. Idea jest taka, że doszedłem już do poziomu, gdzie mam tabelę z akcjami, każda akcja ma jakąś kategorię. Kategorie mogą być 2 rodzajów: główne i podrzędne, użytkownicy sobie sami wymyślają kategorie i je dodają, usuwają, modyfikują.

Jako że jedna (sub)kategoria może przynależeć do wielu użytkowników, a jeden użytkownik może mieć wiele (sub)kategorii, to mam w tym przypadku relację wiele-do-wielu, myślałem więc utworzyć stworzyć 2 tabele, jedna dla kategorii, druga dla subkategorii, po czym sprząc je tabelą pomocniczą, jak to w relacjach wiele-do-wielu się niby robi.

I tu leży pies pogrzebany. Jeśli użytkownik Kowalski doda kategorię Abcd, która będzie mieć subkategorie Bcd oraz Bef, to może się przecież zdarzyć, że przyjdzie Nowak i doda sobie kategorię Xyz, która będzie miała subkategorie Uwx oraz Bcd - to w tym momencie wysypuje się idea, bo subkategoria Bcd ma 2 nadrzędne.

Wracając do początku mógłbym na upartego dać jedną tabelę dla kategorii i drugą dla subkategorii, w której będzie występowała redundancja, nazwy będą się powtarzać - wszystkie będą miały przypisanego jednego użytkownika i nie będzie zgrzytów, np. tak:

Kod
id nazwa użytkownik   kat_nadrzędna
1  Bcd   [Kowalski]  Abcd
2  Bef   [Kowalski]  Abcd
3  Uwx   [Nowak]     Xyz
4  Bef   [Nowak]     Xyz
5  Bef   [Dziura]    Lkj
...


Czy takie rozwiązanie ma sens z punktu widzenia normalizacji, czy też należy szukać wyjścia gdzie indziej?

Ten post edytował radabus 27.10.2011, 21:41:18
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.08.2025 - 11:43