Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: artykłu do kilku kategorii
Forum PHP.pl > Forum > PHP
tukan
Witam,
Chciałem się poradzić, jak zaprojektować sobie bazę danych. Rzecz tyczy się artykułów. Główny problem stanowi w jaki sposób przyporządkowywać artykuły do określonych kategorii. Jeden artykuł może należeć do kilku kategorii, przy czym poszczególne artykuły mogą mieć różną liczbę przyporządkowań do kategorii- nie jest określone, że każdy ma tyle samo. Poza tym, przewiduję możliwość wyświetlania sobie po kategorii, dlatego musi to być w miarę sprawnie zrobione smile.gif
Na chwilę obecną mam stworzoną jedną tabelę: treść, tytuł, data, autor, link do grafiki.
I teraz. Załóżmy, że jest tylko 10 różnych autorów. Wiadomo- że nie ma sensu zapisywać imienia i nazwiska w każdym wierszu, tylko lepiej dać liczbę i odniesienie do tego gdzieś. I chodzi o to 'odniesienie'. Tworzyć relacyjną bazę danych, czy lepiej zrobić to inaczej?
Pozdrawiam! smile.gif
nospor
AUTOR
id
name

ARTYKUL
id
title
id_autor
....

KATEGORIA
id
name

ARTYKUL_KATEGORIA
id_artykul
id_kategoria
tukan
jak do tabelki ARTYKUL_KATEGORIA będę sobie wpisywał id_artykułu, to do kolumny mam wpisywać id_kategorii. I te id_kategorii mam przedzielać przecinkami? ( bo przecież artykuł należy do wielu kategorii) czy tworzymy nowe wiersze? W takim razie będzie kilka wierszy o takim samym id_artykułu?
nospor
Cytat
czy tworzymy nowe wiersze? W takim razie będzie kilka wierszy o takim samym id_artykułu?
Dokładnie tak.
tukan
ok, no to dzięki
( napiszę jakby coś wink.gif)

i jeśli chodzi o właściwości tabeli, to tylko na koluny id_... ustawiamy PRIMARY_KEY?
nospor
Jest to zwykła relacja wiele do wielu i powszechnie używana.
nospor
W każdej z tabel PRIMARY KEY ma być na pole ID.
Wyjątkiem jest tabela ARTYKUL_KATEGORIA gdzie primary key będzie sie składał z dwóch pól
tukan
czyli w każdej tabeli 1 kolumna ma primary, w akrtykuł_kategoria obie kolumny?
nospor
Cytat
w akrtykuł_kategoria obie kolumny?
Nie obie kolumny, a jeden klucz główny skłądający się z dwóch pol.
tukan
jak to zrobić?
nospor
Po pierwsze: przestan dawać każdemu postowi POMOGL.....

Po drugie: jak zrobić? Normalnie, tak jak każdy inny klucz głowny.... tylko ze zamiast jednej kolumny określas dwie
http://dev.mysql.com/doc/refman/5.1/en/create-table.html
tukan
mam teraz inny problem.
Kodowanie pliku php, za pomocą którego zapisuję do bazy danych to: utf-8
Kodowanie kolumny, do której zapisuję dane: utf8_general_ci
I w bazie pojawiają mi się krzaczki zamiast polskich liter. Co z tym zrobić?
nospor
Tematów o krzach w bazie było juz milion. Wystarczy poszukać
tukan
faktycznie, miałeś rację smile.gif
Dodałem mysql_query('SET NAMES utf8');
i pomogło smile.gif
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.