![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 359 Pomógł: 12 Dołączył: 16.01.2009 Ostrzeżenie: (0%) ![]() ![]() |
Zauważyłem, że często do różnych obiektów tworzy się dodatkowe tabele, a w głównej tylko ID pól w tamtych tabelach dla identyfikacji. Czasami mam wrażenie, że dla niektórych rzeczy to przesada i można po prostu wpisać normalną nazwę, bez odnośników do innych tabel. Chciałbym się dowiedzieć, kiedy takie działania są w granicach rozsądku i nie uciążliwe. W praktyce mam taką tabelę, z... powiedzmy odnośnikami do kursów online i tabelę z kategoriami kursów:
Kod +----+--------------+-----------+--------+------------------------------------------+------------+ | ID | NAZWA | KATEGORIA | LEKCJA | LINK | OST_EDYCJA | +----+--------------+-----------+--------+------------------------------------------+------------+ | 1 | Wprowadzenie | 0 | 1 | kursy-online/kurs-html/wprowadzenie.html | 2009-03-04 | | 2 | Znaczniki | 0 | 2 | kursy-online/kurs-html/znaczniki.html | 2009-03-04 | +----+--------------+-----------+--------+------------------------------------------+------------+ +----+-----------+ | ID | NAZWA | +----+-----------+ | 1 | Kurs HTML | +----+-----------+ Zastanawiam się, czy nie byłoby lepiej, gdybym wykasował tę drugą tabelę, a w polu kategoria po prostu wpisywać normalne nazwy. Oszczędziłoby mi to robienia funkcji na wyciąganie nazwy kategorii z jego ID i przyspieszyło wyciąganie wszystkich rekordów z kategorią HTML. A jak wy myślicie? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 22 Pomógł: 2 Dołączył: 3.03.2009 Ostrzeżenie: (0%) ![]() ![]() |
1. nie musisz tworzyc dodatkowej funkcji przez JOIN w zapytaniu sql pobierzesz kursy razem z kategoriami.
2. kiedy tworzysz kurs, musisz prawdopodobnie z listy select (html) wybrać odpowiednią kategorię, z którą chcesz go powiązać. Gdyby nie istniała tabela z kategoriami, musiałbyś pobrać z tabeli z kursami niepowtarzające się nazwy kategorii. Z pewnością trwało by to dłużej niż zwykły select. 3. Gdybyś w tabeli kursy dodał pole "nazwa kategorii" to w przypadku 100 kursów na jedną kategorię nazwa tej kategorii będzie powtórzona 100 razy, a napewno zdajesz sobie sprawe z tego ze varchar zajmuje duzzo wiecej miejsca od INT'a. 4. itd. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 16.10.2025 - 23:45 |