Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Konstrukcja bazy danych
Forum PHP.pl > Forum > Bazy danych > MySQL
jacobson
Witam, mam takie pytanie... otoz do bazy danych chce stworzyc tabele Zaakceptowane ktora bedzie zawierala aktualne rekordy i potrzebuje rowniez tabeli Oczekujace i Archiwum... Czy do konstrukcji takiej bazy danych najlepiej uzyc 3 roznych tabel Oczekujace, Zaakceptowane i Archiwum czy moze tak samo (a moze nawet bardziej) wydajnie bedzie stworzyc jedna Tabele "Rekordy" ktora bedzie zawierala wszystkie pola te co tabela "zaakceptowane" plus dodatkowe 2 typu bool isAwaiting i isArchive. I w momencie dodawania rekordow wszystkie maja isAwaiting na true, po zaakceptowaniu na false a po przedawnieniu isArchive na true.

Jakie rozwiazanie jest najbardziej wydajne przy projektowaniu bazy danych?
Jakie negatywne skutki moze miec stworzenie takiej bazy z tylko jedna tabela?

Pozdrawiam
askone
Według mnie 2 tabele. Pierwsza standardowa z zamówieniami oczekującymi i zaakceptowanymi. Druga z zamówieniami archiwalnymi. W pierwszej tabeli do opisania statusu wystarczyłaby jedna kolumna isAwaiting typu Boolean. Domyślna wartość dla nowo wstawianych rekordów to TRUE. Wtedy jeśli zamówienie zostaje zaakceptowane kasujesz flagę. W przypadku gdy zamówienie ma być zarchiwizowane to przenosisz je do drugiej tabeli.
Archiwizowanie zamówień w osobnej tabeli pozwoli na ograniczenie liczby rekordów w pierwszej tabeli a dzięki temu zachowanie krótkich czasów operacji na tej tabeli.

Pozdrawiam
jacobson
O wlasnie o taka opinie mi chodzilo tongue.gif Dziekuje bardzo za pomysl.
Mam jeszcze takie pytanie dot. bazy danych ... otoz ma w niej byc bardzo duzo rekordow (kilka tysiecy). Czy jest jakies rozwiazanie, ktore spowoduje ze baza bedzie troche odciazona ? bo rozumiem ze szybkosc jej odpowiedzi jest w duzym stopniu zalezna od ilosci rekordow.
askone
kilka tysięcy to nie jest dużo wink.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.