![]() |
![]() |
![]()
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! |
|
|
![]() |
![]() ![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 627 Pomógł: 33 Dołączył: 1.05.2005 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
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) 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 |
|
|
![]()
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 |
|
|
![]()
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. |
|
|
![]()
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)
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 19:48 |