![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 25 Pomógł: 0 Dołączył: 15.04.2009 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Wiem że już podobne tematy były na forum (nawet przeczytałem kilka ![]() Mam mały dylemat przy tworzeniu bazy danych dla strony z bazą programów, gier i sterowników. Oto kilka wariantów o których myślę. Wariant 1 Dosyć prosty i w porządku dla małej liczby rekordów, ale co w przypadku dajmy na to 10 000 aplikacji, 500 kategorii, 100 000 komentarzy? i około 500-1000 ludzików na stronie? Mogłoby być ciężko jak dla mnie. Tabela Aplikacje Id | IdProducenta | IdLicencji | IdKategorii | Nazwa | Wersja | Opis | DataDodania | NazwaProducenta | LinkDoProgramu | TypAplikacji <--- (tzn. Czy sterownik, program czy gra, wartości 1,2 lub 3) Tabela Kategorie Id | Nazwa Tabela Komentarze Id | IdUzytkownika | IdAplikacji | Komentarz Tabela Obrazki <-- do jednej aplikacji może być więcej niż 1 obrazek stąd osobna tabela Id | IdAplikacji | LinkDoObrazka Wariant 2 Czyli rozbicie wszystkiego na tabele, pasuje od strony logicznej, bo gry, programy i sterowniki maja rożne kategorie. Wszystko jest rozłożone na klilka tabel, więc obciążenie danej tabeli jest mniejsze. Nie podoba mi się natomiast że obrazki rozbite są w 3 różnych tabelach, wolałbym mieć je wszystkie w 1 tabeli, jest to w zasadzie nie możliwe z powodu różnych indexów w każdej z tabel gry, sterowniki, programy. Tabela Gry Id | IdProducenta | IdLicencji | IdKategoriiGry | Nazwa | Wersja | Opis | DataDodania | NazwaProducenta | LinkDoProgramu | Tabela Programy Id | IdProducenta | IdLicencji | IdKategoriiProgramy | Nazwa | Wersja | Opis | DataDodania | NazwaProducenta | LinkDoProgramu | Tabela Sterowniki Id | IdProducenta | IdLicencji | IdKategoriiSterownikii | Nazwa | Wersja | Opis | DataDodania | NazwaProducenta | LinkDoProgramu | Tabela KategorieGry Id | Nazwa Tabela KategorieProgramy Id | Nazwa Tabela KategorieSterowniki Id | Nazwa Tabela KomentarzeGry Id | IdUzytkownika | IdGry | Komentarz Tabela KomentarzeProgramy Id | IdUzytkownika | IdProgramu| Komentarz Tabela KomentarzeSterowniki Id | IdUzytkownika | IdSterownika | Komentarz Tabela ObrazkiProgramy Id | IdProgramu | LinkDoObrazka Tabela ObrazkiGry Id | IdGry | LinkDoObrazka Tabela ObrazkiSterowniki Id | IdSterownika | LinkDoObrazka Wariant 3 - i ostatni ![]() Czyli wolna amerykanka - możliwość wyboru co chcemy mięć w 1 tabeli, a co w wielu tabelach Tabela Aplikacja Id | IdAplikacji | typ | <--- (IdAplikacji to id programu, sterownika lub gry, a Typ określa czy to jest sterownik, program czy aplikacja), dzięki tej tabeli pośredniczącej, każdy z rekordów tabeli, ma swój unikalny indeks. Tabela Gry Id | IdProducenta | IdLicencji | IdKategoriiGry | Nazwa | Wersja | Opis | DataDodania | NazwaProducenta | LinkDoProgramu | Tabela Programy Id | IdProducenta | IdLicencji | IdKategoriiProgramy | Nazwa | Wersja | Opis | DataDodania | NazwaProducenta | LinkDoProgramu | Tabela Sterowniki Id | IdProducenta | IdLicencji | IdKategoriiSterownikii | Nazwa | Wersja | Opis | DataDodania | NazwaProducenta | LinkDoProgramu | Tabela KategorieGry Id | Nazwa Tabela KategorieProgramy Id | Nazwa Tabela KategorieSterowniki Id | Nazwa Tabela Obrazki Id | IdAplikacji | LinkDoObrazka Myślę nad tym i nie wiem który wariant wybrać. Te tabele o których napisałem wyżej są bardziej rozbudowane, ale nie chciałem przytaczać zbędnych danych tylko nakreślić problem. Nie wiem które rozwiązanie jest bardziej optymalne. Czy wariant 3, wprowadzenie dodatkowej tabeli z indexem jest dobrym pomysłem? Obstawiałbym za tym bo dałoby mi to szersze pole manewru. Sam już nie wiem i liczę na podpowiedź mądrzejszych odemnie. pozdrawiam Ten post edytował coolos 23.03.2010, 14:54:14 |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 57 Pomógł: 18 Dołączył: 15.04.2009 Skąd: Kwidzyn Ostrzeżenie: (0%) ![]() ![]() |
Według mnie, wariant 2 to najlepsze rozwiązanie. W przyszłości gdybyś chciał zmienić coś w tabeli np. kategorie (wariant1) to zmieniłbyś także w kategoriach gry, programy i sterowniki. Jednak gdy wybierzesz wariant 2 to możesz zmienić sobie w kategorie gry, a pozostałe kategorie pozostają bez zmian. IMO efektywniej pobierać jest tylko kategorie gry, gdy są one potrzebne niż wszystkie kategorie powodując tylko niepotrzebne obciążenia.
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 25 Pomógł: 0 Dołączył: 15.04.2009 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki za pomoc. Chciałbym żeby ktoś jeszcze podzielił się swoją opinią na ten temat
![]() Myślę też czy nie lepiej będzie trzymać opisy do programów w osobnych tabelach, bo często wyświetla się samą nazwę programu z linkiem, bez opisów itd. (więc najczęsciej pobieram jakieś 20% danych z wszystkich kolumn). Zmniejszenie kolumn w Tabeli na pewno wpłynie na szybkość pobierania danych z bazy. |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 07:32 |