Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Zaprojektowanie bazy CMSa z dodatkami
Forum PHP.pl > Forum > Bazy danych > MySQL
deha21
Witam,
Mam mały problem z zaprojektowaniem bazy pod CMSa. Generalnie chodzi o to, że mam np. newsy, artykuły i strony. W każdym z tych działów mogę do np. newsa dodać jakiś dodatek multimedialny. Multimedia będą miały oddzielne tabele - audio, video, gallery. Myślę, że aby to połączyć można zrobić nową tabelę powiedzmy "addon" gdzie:
  1. ADDON
  2.  
  3. id | category | addonid | parentcategory | parentid | position
  4.  
  5. // category - kategoria: audio, video, gallery
  6. // addonid - czyli id konkretnego multimedia z odpowiedniej kategorii, np. tabela audio>rekord 11
  7. // parentcategory - czyli np. newsy lub artykuły
  8. // parentid - czyli np. News o ID 45
  9. // position - pozycja potrzebna do ustalania kolejności wyświetlania, np. w newsie 45


Myślałem też o czymś takim, żeby w kategoriach news, artykuly i strony zrobić pole ADDON i do niego wpisywać numery ID z tabeli ADDON (wtedy byla by bez pól parentcategory i parentid). Chciałbym wpisywać ID po przecinku. Zastanawiam się czy nie będzie wtedy problemu żeby potem je wywołać na zasadzie:
Jeśli w polu ADDON jest coś to szukaj w tabeli ADDON. Jeśli to audio to szukaj tabelę AUDIO i wyświetlaj odpowiedni ID, jeśli video to... itd... Wyświetlaj ORDER BY position.

Wydaje mi się, że drugi rozwiązanie byłoby lepsze ale nie jestem do końca pewien czy dam rade tak zrobić bo na razie wydaje mi się to skomplikowane winksmiley.jpg Co proponujecie?

Pozdrawiam
Pilsener
"dodatek multimedialny" - czyli konkretnie co? Chodzi o wstawienie filmu do treści newsa? A nie da się tego zrobić edytorem wysig, a plik po prostu uploadować lub podać link do niego (jeśli jest na zewnętrznym serwerze)? Jeden news czy artykuł to jeden rekord w bazie, chyba, że przewidujesz dzielenie na strony (wtedy wygodnie jest trzymać w bazie jedną stronę jako jeden rekord)

I nie wpisuje się ID po przecinku, moim zdaniem to jakaś profanacja relacyjnych baz danych. Relacje wiele do wielu rozwiązuje się poprzez stworzenie tabeli łączącej, np. masz dwie tabele: style oraz artykuły. Chcesz przypisać jednemu artykułowi wiele styli, więc tworzysz tabelę:

id_artykulu | id_stylu
-------------------------
1 | 2
1 | 3
2 | 2
2 | 3
3 | 4

Z całej reszty też niewiele rozumiem, np. ta kolejność wyświetlania - a newsy nie wyświetla się od najnowszego do najstarszego? Ile podobnych systemów już zrobiłeś?
deha21
Już precyzuję winksmiley.jpg

Dodatek multimedialny to będzie video/audio/galeria dołączana do treści newsa. Chodzi o to, że pod treścią newsa można wyświetlić np. video i galerie. Przy czym najpierw chciałbym video a potem galerię więc potrzebuję mieć możliwość ustawienia pozycji.

Dodatki te będą też działały jako osobne strony z filmami/audio/galeriami dlatego myślę, że ładowanie ich za pomocą WYSIWYG nie będzie zbyt komfortowe. Chyba, że ktoś mi pomoże napisać coś takiego że stworzę dodatek do FCKEditor który umoliwi mi wybieranie filmów z mojej bazy winksmiley.jpg

Co do wrzucania ID po przecinku to dałem taką propozycję, akurat mi się nasunęła. Nigdy tego nie stosowałem i nie wiem czy jest to poprawne. A więc skoro nie jest to a kysz z tym winksmiley.jpg

Ile podobnych systemów napisałem? Generalnie piszę czwarty, ale pierwsze dwa to żal. Trzeci skończyłem nie dawno, czasie jego pisania wiele się nauczyłem i stwierdziłem, że źle się do niego zabrałem więc napiszę nowy. Mozna powiedzieć, że ten nad którym teraz pracuje będzie pierwszym porządnie wykonanym CMSem (w takim sensie, że z wielu rzeczy zdaje sobie sprawę i staram się je wykonać jak najlepiej umiem... bo uważam siebie za początkującego).
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.