encje słabe - używanie

0

Dzień dobry. Mam pytanie, czy używanie encji bez identyfikatora ma jakieś zalety? szybkość?
Od czego zależy to czy użyjemy encji słabej czy zwykłej encji z polem ID posiadającym AI ?

Czego zatem powinno się używać? Znalazłem przykład gdzie pokazano użytkowanie encji słabej user->project gdzie project był encją słabą, nie posiadał ID ale nr_projektu i relacja szła właśnie z tabeli user z pola project do tabeli project do pola nr_projektu

Dlaczego zatem to jest lepsze od ustawiania relacji na ID w danej tabeli?

0

Zalety? - chyba tylko jedna - brak dodatkowego pola czyli mniej potrzebnego miejsca. Wady? - zamiast wpisać WHERE id = xxx musisz wpisać WHERE nr_projektu = xxx AND user = yyy. Co lepsze? - co kto lubi. Generalnie w 99,9% przypadków dodanie pola ID jako AI łamie zasady postaci normalnych ponieważ jest to pole sztuczne, niemniej jednak jest szeroko używane właśnie po to aby w warunkach czy łączeniu tabel nie trzeba było podawać całych ciągów pól a jedno - id. Do wad takiego rozwiązania można jeszcze dodać dublowanie indeksów - jeśli pole id jest PK to automatycznie jest indeksowane. Jeśli dodatkowo mamy kandydata na PK ale złożony (jak w Twoim przykładzie nr_projektu i id_usera) to zazwyczaj te pola też są indeksowane bo często się po nich wyszukuje.

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