Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Skomplikowana baza - ambitne zadanie! :)
publius
post
Post #1





Grupa: Zarejestrowani
Postów: 31
Pomógł: 0
Dołączył: 24.09.2003
Skąd: Piaskownica

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


Witam.

Mam taką zagwozdkę z zaprojektowaniem bazy danych.
Załóżmy, że mam serwis, w którym każdy może sobie założyć kilka minii dzienników oraz blogów (to to samo, ale załóżmy, że blog i dziennik się różnią od siebie merytorycznie i strukturalnie).

W każdym dzienniku oraz blogu będą przechowywane jakieś notatki/wpisy.
Dla zobrazowania, struktura wygląda tak:
(IMG:http://img357.imageshack.us/img357/3103/serwiszi2.jpg)

Moje pytanie: jak zaprojektować bazę danych, żeby w jednej bazie znalazły się te wszystkie informacje i był tam względny porządek w tabelach.

Myślałem nad czymś takim, że tabele w bazie wyglądałyby tak:

userzy (ID, IMIE, etc.)
lista_blogow_dziennikow (ID, USER_ID, DZIENNIK_ID, TYP[dziennik albo blog])
dziennik_1 (ID, USER_ID, LISTA_BLOGOW_DZIENNIKOW_ID, WPIS, DATA, etc.)
dziennik_2 (...)
dziennik_3 (...)

Gdzie przy każdym nowo założonym dzienniku lub blogu będzie dodawana nowa tabela w formacie "dziennik_ID".

Myślałem tez o takiej budowie:

userzy (ID, IMIE, etc.)
lista_blogow_dziennikow (ID, USER_ID, DZIENNIK_ID, TYP[dziennik albo blog])
dzienniki (ID, USER_ID, LISTA_BLOGOW_DZIENNIKOW_ID, WPIS, DATA, etc.)
blogi (ID, USER_ID, LISTA_BLOGOW_DZIENNIKOW_ID, WPIS, DATA, etc.)

Gdzie w dziennikach i blogach będą przechowywane wszystkie wpisy, a z poziomu PHP będę sobie filtrował, które będą wyświetlane.
Zakładam jednak, że wpisów będzie obłędnie dużo, więc chyba nie jest to najlepsze rozwiązanie pod względem szybkości, prawda? A szybkość jest bardzo ważna w tym przypadku.

Starałem się opisać problem najjaśniej jak potrafię. W razie czego mogę wszystko dopowiedzieć, jeśli coś ominąłem.
Jestem mało doświadczony w temacie i będę bardzo wdzięczny za sugestie!
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
nrm
post
Post #2





Grupa: Zarejestrowani
Postów: 627
Pomógł: 33
Dołączył: 1.05.2005
Skąd: Katowice

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


Cytat(publius @ 2.08.2008, 20:43:38 ) *
dziennik_3 (...)

dziennik_1235485778367835764090870 ?!?
Jak dla mnie FAIL na całej linii (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

(IMG:http://www.shipmentoffail.com/wp-content/uploads/2007/12/fail-1.jpg)

Cytat(publius @ 2.08.2008, 20:43:38 ) *
Zakładam jednak, że wpisów będzie obłędnie dużo, więc chyba nie jest to najlepsze rozwiązanie pod względem szybkości, prawda? A szybkość jest bardzo ważna w tym przypadku.

Niech będzie i miliard byle struktura była prawidłowa (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

Ten post edytował normanos 2.08.2008, 22:21:22
Go to the top of the page
+Quote Post
publius
post
Post #3





Grupa: Zarejestrowani
Postów: 31
Pomógł: 0
Dołączył: 24.09.2003
Skąd: Piaskownica

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


Hehe dziękuję za dobitne zobrazowanie mi sprawy (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

OK, też mi się pomysł nie podobał.

Co więc myślisz o strukturze, którą już podałem?

NP.:
userzy
dzienniki
dzienniki_wpisy
blogi
blogi_wpisy

Nie będzie problemów z szybkością zapytań jeśli w jednej tabeli będę miał, np. milion wpisów?

Ten post edytował publius 2.08.2008, 22:36:12
Go to the top of the page
+Quote Post
osiris
post
Post #4





Grupa: Zarejestrowani
Postów: 121
Pomógł: 15
Dołączył: 19.07.2007

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


ta ostatnia podana przez Ciebie lista tabel powinna byc najlepsza (przynajmniej wnioskujac z podanych przez Ciebie dotychczas informacji). Co do struktury to musisz podac przynajmniej jeszcze liste kolumn w tych tabelach.

Zapytanie zapytaniu nierowne. Jedno moze sie wykonywac bardzo szybko nawet dla miliona rekordow, drugie juz kilku tysiacach bedzie mielilo przez 2 minuty.
Go to the top of the page
+Quote Post
publius
post
Post #5





Grupa: Zarejestrowani
Postów: 31
Pomógł: 0
Dołączył: 24.09.2003
Skąd: Piaskownica

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


Sęk w tym, że w kolumnach będzie dużo liczb i daty. Daty muszą być segregowane, a liczby zliczane... ale chyba nic innego nie da się zrobić. Zawsze będę mógł awaryjnie rozbić tą bazę danych (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Mam nadzieję... ok dzięki za pomoc, już mnie to jakoś nakierowało. Gdyby ktoś miał jeszcze jakieś sugestie, to przyjmę z otwartymi rękoma (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 22.08.2025 - 19:48