Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Skomplikowana baza - ambitne zadanie! :)
Forum PHP.pl > Forum > Bazy danych > MySQL
publius
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:


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!
nrm
Cytat(publius @ 2.08.2008, 20:43:38 ) *
dziennik_3 (...)

dziennik_1235485778367835764090870 ?!?
Jak dla mnie FAIL na całej linii winksmiley.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 winksmiley.jpg
publius
Hehe dziękuję za dobitne zobrazowanie mi sprawy 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?
osiris
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.
publius
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 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 smile.gif
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.