![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 30 Pomógł: 0 Dołączył: 12.01.2008 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Witam,
jestem na etapie projektowania struktury bazy danych dla dosyć dużego serwisu (baza obiektów turystycznych) i zastanawiam się czy dane jednego obiektu lepiej przechowywać w jednej dużej tabeli czy w kilku mniejszych (dokładnie jak rozplanowałem to wyszło mi 8 małych), do wyświetlenia kompletnego wpisu potrzebny będzie dostęp do 7 z 8 tabel + 3 z danymi stałymi (z których będą pobierane np. nazwy województwa itp. - w opisie obiektu będzie tylko id rekordu z nazwą województwa), ale np do wyświetlenia wyników wyszukiwania już tylko 4-5 + 2-3 z danymi stałymi. Najkorzystniej zapewne byłoby to zrobić właśnie w ten sposób tylko jestem ciekaw na ile pobieranie danych z różnych tabel w jednym zapytaniu jest mniej efektywne od pobierania danych z jednej dużej tabeli? Gdybym zrobił wszystko w jednej tabeli miałaby ona ok 40 kolumn, więc wydaje mi się, że jest to bezsensu. Co do ilości zapytań to zdecydowanie większy nacisk kładę na ograniczenie ich liczby przy pobieraniu danych z bazy niż przy dodawaniu (do dodania jest taka liczba danych, że to i tak pożre od 10 do 100 zapytań dla jednego obiektu, ale obiekty będą dodawane stosunkowo powoli). Dzięki serdeczne za pomoc (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Maciek |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Przyjaciele php.pl Postów: 5 724 Pomógł: 259 Dołączył: 13.04.2004 Skąd: N/A Ostrzeżenie: (0%) ![]() ![]() |
Ehhhh,
@awakening zacznij od zrobienia szukarki na tym co masz, normalizacja ma ci ulatwic operowanie na rekordach, zebys np. nie musial nazwy wojewodztwa wszedzie wpisywac, tylko np wpisac jego ID itd. Odpal sobie szukarke i listing, sprawdz wydajnosc - jak bedzie OK to zostaw. Potem na nazwie potestuj. I jak bedzie powolne to denormalizuj baze (nie musisz calej, ale dodac dodatkowe rekordy ktore przydadza ci sie w szukarce) |
|
|
![]() ![]() |
![]() |
Aktualny czas: 5.10.2025 - 01:47 |