Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Pole z różną ilością słów
ultramega-ok
post
Post #1





Grupa: Zarejestrowani
Postów: 29
Pomógł: 0
Dołączył: 31.01.2005
Skąd: stąd :)

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


Jestem dosyć zielony w MySQL-u, więc mam takie pytanie:
chcę zrobić bazę przechowującą informacje o rysunkach (tytuł, data, itp. ), a jedną z nich ma być słowo określające kategorię do której należy rysunek, np. krajobraz, portret. Problem mam taki, że niektóre rysunki będą należeć do kilku kategorii jednocześnie (czyli w czasie wyszukiwania ta sama praca może zostać wyświetlona dla różnych słów) i nie wiem jak to rozwiązać: jak w jednym polu o nazwie np. "kategoria" przechowywać kilka słów, przy czym ta ilość będzie zmienna? Można zrobić pole będące np. tablicą stringów lub czymś w tym rodzaju?

Ten post edytował ultramega-ok 24.04.2005, 00:07:23
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
SongoQ
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

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


Proponuje takie rozwiazanie:

Stworzenie tabelki kategoria w ktorej masz takie pola
Kat_Id
Kat_Nazwa

Kolejna tabele ktora bedzie laczyla obraz z kategoria
ObrazKategoria:
ObrKat_Id
ObrKat_Kat_Id - id kategori
ObrKat_Obr_Id - id obrazu


--------------------
Go to the top of the page
+Quote Post
ultramega-ok
post
Post #3





Grupa: Zarejestrowani
Postów: 29
Pomógł: 0
Dołączył: 31.01.2005
Skąd: stąd :)

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


Nie rozumię tego chyba do końca. Jak teraz przypożądkować jednemu rysunkowi kilka nazw kategorii, skoro jest jedno pole "ObrKat_Kat_Id" questionmark.gif
Go to the top of the page
+Quote Post
yavaho
post
Post #4





Grupa: Zarejestrowani
Postów: 449
Pomógł: 0
Dołączył: 26.05.2004
Skąd: Nowy Sącz

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


Jeżeli rysunki beda znajdywane podczas wyszukiwania to proponuje dodac jedno pole tekstowe w ktorym beda tylko slowa kluczowe odpowiednie dla danego obrazka. Jest to prosta metoda w ktorej nie trzeba zakladac dodatkowej tabeli z kategoriami, ale trzeba recznie wklepywac słowa kluczowe.

Albo metoda ktora podal @SongoQ z dodatkowa posrednia tabela.
I mozesz sobie przypisac do obrazka ile chcesz kategorii, a informacja o tym bedzie przechowywana wlasnie w tabeli posredniej.

Tabela kategorie
Kat_Id
Kat_Nazwa

Tabela obrazki
Obr_Id
Obr_Nazwa

Tabela posrednia
ObrKat_Id
ObrKat_Kat_Id - id kategorie
ObrKat_Obr_Id - id obrazki


--------------------
Książki informatyczneKsiążki biznesowe
Warsztat: notepad hardcore
Go to the top of the page
+Quote Post
ultramega-ok
post
Post #5





Grupa: Zarejestrowani
Postów: 29
Pomógł: 0
Dołączył: 31.01.2005
Skąd: stąd :)

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


Proszę o dokładniejsze wytłumaczenie.
W której tabeli co przechowuję? Weźcie pod uwagę, to że jestem początkujący.

Każecie zrobić dodatkowe tabele, ale jak je podpiąć do tej głównej?

Mam stworzyć taką tabelkę z nazwami kategorii - tak to ma wyglądać? :

"kategorie"
Kat_Id      : 01       02       03      04...
Kat_Nazwa: aaa    bbb      ccc     ddd...

"obrazki"
Obr_Id      : 001  002  003  004...
Obr_Nazwa: xxx  yyy  zzz  vvv...

I na koniec np.:
"posrednia"
ObrKat_Id        : 111   222   333...
ObrKat_Kat_Id :  02     04     01...
ObrKat_Obr_Id : 001   002   003...

W tej tabeli każdemu rekordowi z ID obrazka odpowiada tylko jedno pole z ID kategorii, więc jak tu mam zmieścić kilka kategorii dla jednego obrazka?? Rozumię, ze pewnie nie o to wam chodziło, ale ja nie rozumię o co, więc spróbujcie wytłumaczyć głupiemu biggrin.gif .


------------------------
Ja to chcę zrobić tak:

będzie główna tabela "rysunki" z polami:
r_tytuł
r_ocena
r_autor
r_kategorie (i tutaj właśnie chcę przechowywać nazwy kategorii, do których należy rysunek - zmienna ilość dla różnych rysunków, bo niektóre mogą należeć do wielu kat.)
I co z tym dalej zrobić?

Ten post edytował ultramega-ok 4.05.2005, 21:01:48
Go to the top of the page
+Quote Post
yavaho
post
Post #6





Grupa: Zarejestrowani
Postów: 449
Pomógł: 0
Dołączył: 26.05.2004
Skąd: Nowy Sącz

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


Kod
r_kategorie (i tutaj właśnie chcę przechowywać nazwy kategorii, do których należy rysunek - zmienna ilość dla różnych rysunków, bo niektóre mogą należeć do wielu kat.)
Nie mozesz przechowywac w jednej komorce wiecej niz jedna kategorie. Wiec musisz zrezygnowac z pola [r_kategorie] w tabeli[obrazki] I dla tego celu stworzyc dodatkowa tabele, w ktorej beda zapisane powiazania pomiedzy tabela[kategorie] a tabela[obrazki]. W tej dodatkowej posredniej tabeli zapiszesz tylko ID kategorii i ID Obrazka i nic wiecej. Ta tabela z reguly bedzie miala wiecej pozycji niz calkowita ilosc obrazkow, bo dla kazdego obrazka bedzie miala przypisane 1 lub wiecej rekordow.

"posrednia"
ObrKat_Id : 111 222 333 444 555 ...
ObrKat_Kat_Id : 01 02 03 01 02 ...
ObrKat_Obr_Id : 001 001 001 002 002 ...

Tu masz linka gdzie wytłumaczone jest kiedy mozna zastosowac tabele posrednia.


--------------------
Książki informatyczneKsiążki biznesowe
Warsztat: notepad hardcore
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 Aktualny czas: 21.08.2025 - 12:59