ďťż

[MySQL] Jak to zmontować ? ...rzucajcie swe myśli...

       

Podstrony


telcocafe

Słuchajcie mam pytanie natury czysto teoretycznej. Tworze baze danych i z góry wiem, że będzie ona przechowywała dużą ilość danych różnego rodzaju (to jest niekoniecznie ze sobą związanych). Czytałem, że lepiej (bo szybciej) jest odpowiednio podzielić baze na kilka mniejszych tabeli i połączyć je za pomocą np: indexu i loginu. Chodzi mi o to: czy lepiej jest stowrzyć kilka tabel średniej wielkości czy dużo małych tabel (wtedy tabele byłyby podzielone na kategorie)? Co byłoby szybsze waszym zdaniem?



To zależy co chcesz zbudować. Niekiedy podział na zbyt dużo tabel, dostarcza później wielu problemów. Wszystko zależy od rodzaju projektu, jego wielkości itd. Trzeba dostosować strukturę do każdego przypadku osobno :)

Wszystko zależy od tego jak dużo będziesz chciał zrobić tabel a także jak zawile je ze sobą połączysz.
np: masz bazę z listą uczniów to nie robisz tabel: 1a, 1b, 1c itd tylko tabele uczniowie i klasy i łączysz ucznia z id klasy.

Im mniej tym lepiej
edit: tabel oczywiscie :)
Użytkownik Veo edytował ten post 24 sierpień 2005, 22:23


veo im mniej tym lepiej? to co co wedlug ciebie walnac 2-3 tabele gdzie pare tysiecy komorek czy zrobic 4-5 tabel gdzie bedzie pare set komorek?


veo im mniej tym lepiej? to co co wedlug ciebie walnac 2-3 tabele gdzie pare tysiecy komorek czy zrobic 4-5 tabel gdzie bedzie pare set komorek?

Uważam ,że warto zrobić kilka mniejszych tabel niż 2-3 bardzo duże. Pozwala to na posegregowanie danych i później łatwe zarządzanie nimi.Pozwala też łatwiej przeszukiwać taką bazę np(oczywiście sytuacja czysto hipotetyczna :lol: ): mamy system newsów i przechowuje on obrazy,komentarze,treść itd. Łatwiej będzie coś znaleźć i tym zarządzać jeśli przechowujemy komentarze w oddzielnej tabeli, obrazy w innej a same dane o newsach w innej i do tego mamy jeszcze podział na archiwalne newsy i te nowe (czyli np. w tabeli archiwum_newsy mam newsy archiwalne a w tabeli newsy mam te aktualne). I teraz jeszcze okazuje się ,że mamy serwis ,który ma kilka działów potrzebujacych newsów. Dodajemy do nazw tabeli nazwę działu np: gsm_archiwum_newsy itd. Niby dużo roboty ale się opłaci bo później robisz wyszukiwarkę wtedy użytkownik wybiera dział z którego chce newsy a skrypt działą szybciej (bo przeszukiwana jest tabela z newsami z danego działu a nie tabela z wszystkimi newsami (np zamiast 10000 rekordów jest do przeszukania 250). To samo z zarządzaniem łatwiej jest aktualizować małe grupy danych w małych tabelach (nie trzeba np wpisywać id działu) i idzie to szybciej. Dlatego skłaniałbym się do tworzenia większych ilości tabel bo pozwala to nam ładnie posegregować dane a w porzadku łatwiej coś znaleźć niż w bałaganie. Pozdro ;)

pierwsze co sugeruję w tym temacie zrobić to wziąć i wypieprzyć MySQL'a a na jego miejsce zaprządz POSTGRESQL albo InetrBase tudzież FireBird. No chyba że stać Cię na płatne wersje to polecam Oracle.

Jeżeli chcesz zostać przy MySQL'u to będzie rzeźnia. Ten serwer DB nie obsługuje podzapytań, które są nieodzowne przy kilku tabelach. Więc się nakodzisz jak smok przy stronce z taką bazą danych.

Następne. Jak chodzi o samą bazę danych to doradzam dzielenie jej na tabele przechowujące głównie takie same dane. Jeżeli masz ścieżki do plików graficznych to stwórz na to osobną tablę :) i tak dalej.

pozdro
Użytkownik j-mail edytował ten post 27 sierpień 2005, 18:29
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • nvm.keep.pl

  • Sitedesign by AltusUmbrae.