Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Koncepcja tabeli
Forum PHP.pl > Forum > Bazy danych
seth-kk
Czy projekt tabeli w stylu
  1. CREATE TABLE files (
  2. id SERIAL PRIMARY KEY,
  3. module_id INT REFERENCES modules(id) ON DELETE CASCADE,
  4. file_name TEXT,
  5. ... other file options
  6. );
  7. CREATE INDEX files_module_id ON files(module_id);

jest oplacalny z punktu widzenia bazy danych i jej optymalizacji, oraz ew calej aplikacji bazujacej na MVC?
Tzn jest sobie projekt ktory ma N modulow kozystajacych z plikow skladowanych na serwerze, kazdy modul ma wlasne foldery z plikami ale ich lista znajduje sie w jednej tabeli. W alternatywie jest tworzenie niezaleznych tabel dla kazdego modulu ktore w 90% beda wygladaly i dzialaly tak samo.
Obsluga takiej tabeli wydaje sie byc latwiejsza (jeden model, jeden controller z ktorego moga kozystac poszczegolne moduly itp), z drugiej strony to mniej triggerow w bazie, mniej indexow, mniej rekordow w tabeliach (mysle ze realnie jestem w stanie umiescic tam kilkanascie do kilkuset tysiecy rekordow i przynajmniej kilka modulow) ale wiecej pracy przy tworzeniu i rozbudowie takiego rozwiazania
Myslicie ze to sensowny pomysl?
Sajrox
Wydaje mi się że nie ma czego się obawiać że baza danych nie wyrobi. Takie rozwiązanie jest nawet konieczne.

Przy PostgreSQL to już bajka, ta baza uwielbia duzą liczbę krotek w tabeli. Tworzyłem porównywarkę cen która posiadała ponad milion produktów, do tego dochodzi drugie tyle ofert. Ale mimo tego baza działa stabilnie a strony otwierają się błyskawicznie. Co w przypadku MySql było już gorzej. Który potrafił się zawiesić.

W twoim rozwiązaniu wystarczy załozyć indexy na module_id wtedy nie będziesz miał problemu z wydajnością.
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.