Temat dotyczy rozmieszczenia danych w bazie SQL. Chodzi o to, aby umożliwić jak największą współpracę i elastyczność poszczególnych elementów (artów, plików, newsów...), a za razem zachować niezależność i wydajność (np. nie ładować zbyt wielu plików przy odczycie z powodu różnic). Wypowiedzcie się na ten temat.
Teraz mam taką strukturę: artykuły, pliki, obrazy, linki i nowości są przechowywane w swoich tabelach, np. "arts", "files"... Można je przypisać do 1 kategorii o ustalonym typie (!). Nie można więc zamieścić np. linków w katalogu przeznaczonym dla artykułów. Przykład adresów: /file/50, /art/20
Każdy typ kategorii ma też oddzielny plik, wyświetlający listę znajdujących się w niej elementów. Domyślnie w szablonach dla artykułów jest to tylko tabela, zaś dla obrazów - widok typowy dla galerii.
Inne spojrzenie
Taka zmiana nie każdemu może odpowiadać, gdyż wiążą się z nią zarówno: większa elastyczność oraz ograniczenia. Podstawowe dane o wszystkich elementach znalazłyby się w 1 tabeli, np. "items" z polami:
- tytuł
- kategoria, do której należy
- opis
- autor / dodał
- ocena
- dostęp (1 - włączony, 0 - wyłączony)
- opcje [być może]
- ilość komentarzy [prawdopodobnie]
Spowoduje to zwiększenie elastyczności. Stanie się możliwe umieszczenie w 1 kategorii elementów różnego typu, np. plików, grafiki... Wszystkie typy będą zawierać powyższe dane, a więc komentarze i oceny zagoszczą nawet pod informacjami o odnośniku (na osobnej stronie). W ustawieniach kategorii pojawi się opcja: "widok elementów", np. "miniatury" (jak w galerii), "lista". Adresy mogą przybrać formę jak obecnie lub: /item/50, /view/50
Operacje typu: sortowanie wg oceny, pokazywanie / liczenie ilości komentarzy... prawdopodobnie staną się łatwiejsze i mniej skomplikowane. Zmiana niesie za sobą również ograniczenia. Zmniejszy się niezależność każdego typu kategorii na rzecz większej integracji i spójności. Generalnie wyświetlanie dodatkowych informacji o plikach na liście (np. jak w PHP-Fusion) będzie niemożliwe, chyba że pozwoli na to specjalny dla plików widok (wstawienie np. linku może spowodować problem!).
(*) Pozostaje pytanie, czy jest sens tworzyć dodatkową tabelę dla linków, aby trzymać tam jedynie adres URL, ilość kliknięć i opcje (otwórz w nowym oknie).