Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> artykłu do kilku kategorii
tukan
post 29.06.2012, 12:53:43
Post #1





Grupa: Zarejestrowani
Postów: 73
Pomógł: 0
Dołączył: 19.06.2011

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


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

Ten post edytował tukan 29.06.2012, 12:57:17
Go to the top of the page
+Quote Post
nospor
post 29.06.2012, 13:00:16
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




AUTOR
id
name

ARTYKUL
id
title
id_autor
....

KATEGORIA
id
name

ARTYKUL_KATEGORIA
id_artykul
id_kategoria


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
tukan
post 29.06.2012, 13:23:26
Post #3





Grupa: Zarejestrowani
Postów: 73
Pomógł: 0
Dołączył: 19.06.2011

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


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?
Go to the top of the page
+Quote Post
nospor
post 29.06.2012, 13:24:46
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
czy tworzymy nowe wiersze? W takim razie będzie kilka wierszy o takim samym id_artykułu?
Dokładnie tak.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
tukan
post 29.06.2012, 13:30:40
Post #5





Grupa: Zarejestrowani
Postów: 73
Pomógł: 0
Dołączył: 19.06.2011

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


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?
Go to the top of the page
+Quote Post
nospor
post 29.06.2012, 13:30:40
Post #6





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Jest to zwykła relacja wiele do wielu i powszechnie używana.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
nospor
post 29.06.2012, 13:31:48
Post #7





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




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


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
tukan
post 29.06.2012, 13:37:29
Post #8





Grupa: Zarejestrowani
Postów: 73
Pomógł: 0
Dołączył: 19.06.2011

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


czyli w każdej tabeli 1 kolumna ma primary, w akrtykuł_kategoria obie kolumny?
Go to the top of the page
+Quote Post
nospor
post 29.06.2012, 13:48:35
Post #9





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
w akrtykuł_kategoria obie kolumny?
Nie obie kolumny, a jeden klucz główny skłądający się z dwóch pol.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
tukan
post 29.06.2012, 13:52:28
Post #10





Grupa: Zarejestrowani
Postów: 73
Pomógł: 0
Dołączył: 19.06.2011

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


jak to zrobić?
Go to the top of the page
+Quote Post
nospor
post 29.06.2012, 13:57:06
Post #11





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




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


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
tukan
post 29.06.2012, 14:24:45
Post #12





Grupa: Zarejestrowani
Postów: 73
Pomógł: 0
Dołączył: 19.06.2011

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


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ć?

Ten post edytował tukan 29.06.2012, 14:25:09
Go to the top of the page
+Quote Post
nospor
post 29.06.2012, 14:25:42
Post #13





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Tematów o krzach w bazie było juz milion. Wystarczy poszukać


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
tukan
post 29.06.2012, 14:30:52
Post #14





Grupa: Zarejestrowani
Postów: 73
Pomógł: 0
Dołączył: 19.06.2011

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


faktycznie, miałeś rację smile.gif
Dodałem mysql_query('SET NAMES utf8');
i pomogło smile.gif
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: 19.07.2025 - 04:12