mal2065
23.07.2008, 19:42:56
Witam,
proszę o sugestię, jaką strukturę powinna mieć prosta baza danych (jak zbudowane tabele) dla następującego przykładu:
Mamy wielu autorów, którzy tworzą swoje publikacje wg ustalonego szablonu tego, co ma być zawarte w publikacji.
przykładowa tabela AUTORZY
id_autora
imie_autora
nazwisko_autora
haslo_autora
Każdy z autorów pisze publikację i muszą się w niej znaleźć rozdziały WSTĘP, ROZWINIĘCIE, ZAKOŃCZENIE. Ponadto do każdego rozdziału można dodawać wiele zdjęć.
Jaką strukturę powinny posiadać tablice ROZDZIALY i ZDJECIA - tablica autorów jest chyba ok? (bo dynamiczne tworzenie tabel dla każdego z użytkowników nie jest chyba najlepszym pomysłem?)
Tabele AUTORZY i ROZDZIALY, a takze ROZDZIALY i ZDJECIA powinny być połączone, aby można było wyszukiwać np. rozdział danego autora, czy zdjęcia należące do wybranego rozdziału, napisanego przez danego autora.
Z góry dziękuję za pomoc.
phpion
23.07.2008, 19:53:54
autor: id, imie, nazwisko
publikacja: id, autor_id, tytul
rozdzial: id, publikacja_id, numer_rozdzialu, wstep, rozwiniecie, zakonczenie
zdjecie: id, rozdzial_id
Powinno wystarczyć. Jeśli nie jest określone, że jedna publikacja jest napisana przez jednego autora (czyli różni autorzy mogą pisać rozdziały do jednej publikacji) to przenieś atrybut author_id z publikacja do rozdzial.
mal2065
23.07.2008, 20:29:34
Dzięki za szybką odpowiedź!
Mam jedną wątpliwość - czy w opisanej przez Ciebie strukturze nie jest tak, że zdjęcie jest przypisane wyłącznie do publikacji (przez rozdzial_id)?
Chciałbym, żeby zdjęcia były przypisane do rozdziału w publikacji danego autora. Np. kilka zdjęć do wstępu i kilka do zakończenia..
ps. Jeden autor może edytować tylko swoją publikację.
Pozdrawiam
nowotny
23.07.2008, 20:39:03
Cytat(mal2065 @ 23.07.2008, 20:29:34 )

Mam jedną wątpliwość - czy w opisanej przez Ciebie strukturze nie jest tak, że zdjęcie jest przypisane wyłącznie do publikacji (przez rozdzial_id)?
Zdjęcie jest przypisane do rozdziału a rozdział do publikacji... gdzie tu widzisz problem...?
Cytat(mal2065 @ 23.07.2008, 20:29:34 )

Chciałbym, żeby zdjęcia były przypisane do rozdziału w publikacji danego autora. Np. kilka zdjęć do wstępu i kilka do zakończenia..
No to tak masz...
mal2065
23.07.2008, 20:55:19
Czy mógłbyś podać mi przykład zapytania wybierającego zdjęcia dla wstępu w publikacji "Mowa" autorstwa Kasi? Będę bardzo wdzięczny.
autor: id, imie, nazwisko
publikacja: autor_id, tytul
rozdzial: publikacja_id, numer_rozdzialu, wstep, rozwiniecie, zakonczenie
zdjecie: id, rozdzial_id
Chciałbym się też dowiedzieć do czego w tym wypadku służy pole numer_rozdzialu? Czy wstęp, rozwinięcie i zakończenie są składowane w jednym rekordzie, czy też w trzech? Proszę o cierpliwość - chciałbym się przy tej okazji czegoś nauczyć...
nowotny
24.07.2008, 00:43:56
Hmm... w zasadzie jak teraz myślę to nie będzie działać jak chcesz... ja bym rozbił tabelę "rozdziały" jeszcze bardziej:
rozdzial: id_rozdzialu, id_publikacji, typ_rozdzialu(wstep, rozwiniecie, zakonczenie), tresc
phpion
24.07.2008, 06:18:49
Możesz zrobić tak jak napisał ~nowotny (czyli rozbić każdy rozdział na 3 rekordy) lub modyfikując mój przykład:
zdjecie:
id, rozdzial_id, typ (1 = wstęp, 2 = rozwinięcie, 3 = zakończenie)
i w praktyce wyglądałoby to tak:
Kod
id | rozdzial_id | typ
1 | 1 | 1 <- zdjecie o id=1 przypisane do rozdzialu o id=1 jako fotka dla wstepu (typ = 1)
2 | 1 | 1 <- kolejna fotka do wstepu
3 | 1 | 2 <- fotka dla rozwiniecia
4 | 1 | 2 <- i nastepna
5 | 1 | 2 <- i jeszcze jedna
6 | 1 | 3 <- fotka dla zakonczenia
7 | 2 | 1 <- zdjecie o id=7 przypisane do rozdzialu o id=2 jako fotka dla wstepu (typ = 1)
itd
itd
mal2065
24.07.2008, 16:08:52
Dziękuję Wam bardzo. Teraz mi się wszystko zgadza... wybiorę sobie sposób dogodniejszy do wykonywania zapytań z php.
Witam ponownie,
a co z sytuacją, gdy publikacja może mieć kilku autorów (nie wszyscy mogą edytować daną publikację, tylko jej kilkoro autorów)? Czy jedynym rozwiązaniem jest wprowadzenie do pola author_id w tablicy publikacja tablicy (array) z wartościami id autorów? Czy też można zmodyfikować strukturę bazy tak, aby uwzględniała taką sytuację?
phpion
24.07.2008, 16:11:07
Nie oczekuj za każdym razem gotowego rozwiązania...
autor: id, imie, nazwisko
publikacja: id, tytul
autor_publikacja: autor_id, publikacja_id
mal2065
24.07.2008, 16:25:37
Dzięki wielkie za pomoc. Jak tylko znajdę trochę czasu,to poczytam wstępy i tutoriale do mysql, które gdzieś tu widziałem.
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.