![]() |
![]() |
![]() ![]()
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 |
|
|
![]() |
![]()
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 -------------------- |
|
|
![]()
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"
![]() |
|
|
![]()
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 -------------------- |
|
|
![]()
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 ![]() ------------------------ 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 |
|
|
![]()
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. -------------------- |
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 12:59 |