Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Struktura bazy, ilość czy wielkość...
Arkon
post 16.09.2005, 00:27:30
Post #1





Grupa: Zarejestrowani
Postów: 38
Pomógł: 0
Dołączył: 12.02.2004

Ostrzeżenie: (0%)
-----


Witam.
Muszę zaprojektować bazę która będzie w stanie przechowywać wiele artykułów tekstowych o różnej tematyce. Zakładam, że artykułów będzie bardzo dużo dlatego chciałbym zrobić to rozsądnie.
Wymyśliłem ze stworzę jedną tabelę:
arty(id, tresc, tytul, id_kategoria, id_grup ....)
id_kategoria to numer id kategorii którą jest artykuł(np. recenzja, opis, przepis, news itp)
id_grup to grupy tematyczne do których artykuł należy(np książka, film, komiks, medycyna)
Oczywiście kategorie i grupy to osobne tabele i myślę, że sobie z tym poradzę.

Zastanawiam się czy takie rozwiązanie jest dobre? Czy będzie wystarczająco wydajne. A może lepiej tworzyć osobną tabelę na każdą kategorię? Pewnie przy konkretnym zapytaniu byłoby wygodniej, ale czy przeszukiwanie bądź wyświetlanie większej ilości rekordów nie byłoby już kłopotliwe? Tworzenie osobnych tabel dla grup wydaje mi się głupi pomysłem bo przypuszczam że będzie ich dość sporo. Jakieś doświadczenia? Nabyta wiedza teoretyczna? Help! biggrin.gif

Podsumowując:
Ładować wszystko do jednej tabeli czy rodzielić to na kilka(np ze względu na kategorię)?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
eS...
post 16.09.2005, 00:35:06
Post #2





Grupa: Zarejestrowani
Postów: 367
Pomógł: 2
Dołączył: 4.03.2003
Skąd: C:/Windows/Temp

Ostrzeżenie: (0%)
-----


  1. arty
  2. +id
  3. +id_grupy
  4. +id_kategori
  5. +tytul
  6. +tresc
  7. +DATA
  8.  
  9. grupy
  10. +id
  11. +nazwa
  12.  
  13. kategorie
  14. +id
  15. +nazwa

tak mi sie wydaje, ze grupy (id,nazwa) i kategorie (id,nazwa) powinny byc osobno zeby juz nie ladowac w tabele 'arty'. chyba ze nazwa np. kategori bedzie pobierana na takiej zasadzie
jeseli id_kategori=0 to nazwa=sport
w takim wypadku dal bym to do jednej tabeli smile.gif


--------------------
Go to the top of the page
+Quote Post
Arkon
post 16.09.2005, 09:50:20
Post #3





Grupa: Zarejestrowani
Postów: 38
Pomógł: 0
Dołączył: 12.02.2004

Ostrzeżenie: (0%)
-----


Moj problem polega jednak na tym czy nie rozdzielić tabeli arty na kilka i zamiast
  1. arty
  2. +id
  3. +id_grupy
  4. +id_kategori
  5. +tytul
  6. +tresc
  7. +DATA
  8.  
  9. grupy
  10. +id
  11. +nazwa
  12.  
  13. kategorie
  14. +id
  15. +nazwa

zrobic
  1. arty_komiks
  2. +id
  3. +id_grupy
  4. +id_kategori
  5. +tytul
  6. +tresc
  7. +DATA
  8.  
  9. arty_ksiazka
  10. +id
  11. +id_grupy
  12. +id_kategori
  13. +tytul
  14. +tresc
  15. +DATA
  16.  
  17. arty_film
  18. +id
  19. +id_grupy
  20. +id_kategori
  21. +tytul
  22. +tresc
  23. +DATA
  24.  
  25. grupy
  26. +id
  27. +nazwa


Czy takie rozwiązanie przy dużej ilości rekordów nie odciąży DB. A może właśnie ze względu na konieczność tworzenia złożonych zapytań jeszcze bardziej ją obciąży?
Go to the top of the page
+Quote Post
mike
post 16.09.2005, 10:00:56
Post #4





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

Ostrzeżenie: (0%)
-----


Rozwiązanie złe.
Dlaczego?
1. Po co rozdzielać elementy po różnych tabelach skoro mają taką samą budowę;
2. Jak będziesz chciał wybrać/wyszukiwać wśród wszystkich artach? Zamiast jednego zapytania masz tyle ile natworzysz tabel;
3. Możesz dodać jakieś pole do tabeli z artami, które mówi czy art jest o książkach czy o czymś innym i masz już podział, do którego wcale nie potrzebujesz wielu tablel.
Go to the top of the page
+Quote Post
Arkon
post 16.09.2005, 10:18:00
Post #5





Grupa: Zarejestrowani
Postów: 38
Pomógł: 0
Dołączył: 12.02.2004

Ostrzeżenie: (0%)
-----


Ok czyli tak jak myslalem na poczatku. Dzięki bardzo za pomoc!
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 20.07.2025 - 07:17