Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z doborem typu danych lub schematem bazy
Forum PHP.pl > Forum > Bazy danych
evo
Witam,

Mam baze z filmami w niej tabele FILMY z tytulami,aktorami,itd oraz inna tabele AKTORZY a w niej imie i nazwisko aktora

teraz dodajac film do bazy wymyslilem ze do tabeli FILMY nie bede dopisywal aktorow tylko ich ID w tabeli AKTORZY

jesli w jednym filmie gra wiecej aktorow to musze wpisac pare ID do pola w tabeli wiec wymyslilem ze pole aktorzy w tabeli FILMY to CHAR i ID aktorow bede rozdzielal przecinkiem np: 2,4,14

i tu zaczyna sie problem bo jesli pozniej bede chcial wyszukac film z jakims tam aktorem o ID 1 i zadam zapytanie do bazy to przeciez wywali mi tez te z aktorami np: 2,4,14 bo w tym tez znajduje sie 1

Czy jest jakis typ danych ktory pozwala na wpisanie wiekszej ilosci INT rozdzielonych jakims separatorem?


A moze jakis inny pomysl jak rozwiazac ten problem?

Inna rzecz na jaka wpadlem to to zeby do kazdego filmu tworzyc nastepna mala tabelke z ID aktorow ktorzy w nim graja w w polu aktorzy w tabeli FILMY tylko nazwe tej tabeli

Ale teraz jesli bede szukal filmow z aktorem x to najpierw sprawdze jego ID w tabeli AKTORZY pozniej bede musial przeszukac wszystkie tabelki z aktorami grajacymi w filmach i tu zaczyna sie problem bo nie wiem czy jest mozliwosc zadania zapytania do bazy cos w stylu :

ZNAJDZ MI TABELE GDZIE POLE JAK 'x' winksmiley.jpg

mysle ze nie wiec bede musial wydac wszystkie nazwy tabel bo beda one lgenerowane losowo i przeszukac kazda z nich

wydaje mi sie ze to troche robota na okolo

Prosze naprowadzic mnie na jakies sensowne rozwiazanie bo troche sie zakrecilem i stoje w miejscu winksmiley.jpg
uboottd
TYpowa relacja n->m.
Zalatwia sie to trzecia tabela w ktorej masz id_filmu i id_aktora
Np:
filmy:
Kod
1 | terminator

2 | conan

aktorzy:
Kod
1 | arnold

2 | wrenek

tablica laczaca:
Kod
aktor | film

1 | 1

1 | 2

2 | 2

oznacza ze arnold gral w terminatorze i conanie a wrenek tylko w conanie ale za to razem z arnoldem

zapytania:
kto gral w conanie ?
[sql:1:0ecff77740]
select aktor from aktorzy, laczaca, filmy where aktorzy.id = laczaca.id_aktora and laczaca.id_filmu = filmy.id and film='conan'
[/sql:1:0ecff77740]

gdzie gral arnold ?
[sql:1:0ecff77740]
select film from aktorzy, laczaca, filmy where aktorzy.id = laczaca.id_aktora and laczaca.id_filmu = filmy.id and aktor='arnold'
[/sql:1:0ecff77740]


PS. admini: zalozcie moze w podswietlaniu ze slowo kluczowe to <znakbialy>slowo_kluczowe<znakbialy>, co ?
evo
Dzieki stokrotne teraz to juz z gorki.Dzieki
FiDO
Jak juz jestesmy przy tym to tez mam pytanie. Na tym przykladzie z filmami, jakbym chcial pobrac tytul filmu i ew. jeszcze jakies dane z tabeli z filmami i do tego wszystkich aktorow grajacych w tym filmie.
Czy da sie to zrobic jednym zapytaniem??
Dwoma to sprawa prosta, aktorow pobieramy osobno podajac id filmu i po klopocie, ale jak w jednym to gorzej, bo nigdy nie wiadomo ile aktorow gralo w danym filmie i trzeba by wyciagnac tablice jakas czy co...
uboottd
Owszem mozna to zrobic jednym zapytaniem, z tym ze dostaniesz informacje o filmie powielone o ilosc wystepujacych aktorow. Zapytanie takie jak podalem, dodajesz tylko interesujace ci kolumny.
FiDO
Faktycznie... dzieki.
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.