Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Projekt bazy danych...
Forum PHP.pl > Forum > Bazy danych > MySQL
Gigante
Witam serdecznie


Jako nowy forumowicz chciałbym się na początku przywitac ze stalymi bywalcami i mieć nadzieje ze zostane pozytywnie przyjęty. Przy okazji chcialbym pogratulowac tworcy witryny przejrzystosci, latwosci obslugi i informacji na niej zawartych i ciagle aktualizowanych. Tyle zanudzania… przejdzmy do konkretow.

MySQL jest dla mnie dosc nowym doświadczeniem. HTML znam dosc dobrze, php troche lepiej od MySQL-a ale to i tak nic w porównaniu z tym co widze co to cudo potrafi.

Mój post dotyczy projektu, jaki chce wykonac. Dotyczy on witryny o tematyce: rozrywka. Każdy użytkownik będzie miał możliwość posiadania wlasnego konta, dodawania np. kawalow czy filmikow za co będzie otrzymywal punkty aby pozniej je wydac… i to tak po krotce jak ma wyglądać glowny szkielet witryny.


Pisze jednak w sprawie bardziej dotyczącej budowy odpowiedniej bazy danych. A konkretniej chodzi o budowe dzialu z kawalami (nad innymi się jeszcze nie zastanwaialem).
Najpierw opisze jak oceny kawalow miałyby wyglądać w bazie a pozniej opisze jak to ma działać:

Id_user, id_kawal, ocena, data_dodania, obejrzany

Każdy użytkownik posiadający swój unikalny nr id i będzie mogl ocenic każdy kawal który także będzie miał swój unikalny id, do bazy zostanie zapisana również data dokonania oceny i przy okazji czy użytkownik czytal ten kawal (ta ostatnia opcje można ewentualnie usunąć… ta sprawa jest do przemyslenia).


Martwi mnie fakt, zakładając ze w ciagu roku zarejestruje się 50 000 urzytkownikow, a w bazie kawalow będzie załóżmy 100 000 pozycji. Dla każdego użytkownika z osobna będzie zapisywane czy dany kawal ocenil lub obejrzał co da w sumie 50k x 100k = 5 mld pozycji w kolumnie tabeli. Czy taka ilość pozycji w jednej tabeli nie będzie zbyt spowalniac bazy danych?



Proszę o ewentualne inne propozycje budowy tego dzialu aby się nie okazalo ze po 2 latach duza oglądalność i masa wpisow w bazie w tych pozycjach będzie na tyle duza, iż serwer(y) nie będą w stanie jej obsłużyć… cool.gif
KILIUSZKIN
Cytat(Gigante @ 31.10.2006, 19:27:49 ) *
Martwi mnie fakt, zakładając ze w ciagu roku zarejestruje się 50 000 urzytkownikow, a w bazie kawalow będzie załóżmy 100 000 pozycji. Dla każdego użytkownika z osobna będzie zapisywane czy dany kawal ocenil lub obejrzał co da w sumie 50k x 100k = 5 mld pozycji w kolumnie tabeli. Czy taka ilość pozycji w jednej tabeli nie będzie zbyt spowalniac bazy danych?

Nie wnikając w ograniczone możliwości MySQL (do dużych baz danych się nie nadaje), masz mnóstwo możliwości. Możesz np. podzielić użytkowników albo/i kawały na grupy, wówczas ilość rekordów w tabelach się zmiejszy proporcjonalnie. Dodatkowo możesz stworzyć oddzielną tabelę z informacją o przeczytanych kawałach i do ocen kawałów (nie każdy kto przeczyta dany kawał musi go ocenić). Ponadto możesz również archiwizować stare (np. zeszłoroczne kawały) albo dawno nie czytane(oceniane) kawały. Rozwiązań jest wiele, ponadto, zawsze możesz tak zbudować bazę danych aby w przypadku znacznego przyrostu danych łatwo możnaby ją było przebudować...nie zmieniając zbytnio aplikacji (przynajmniej ja tak to robię)

Powodzenia
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.