Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]Pomoc w strukturze bazy
gosciuuu
post
Post #1





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 14.02.2013

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


Witam serdecznie, potrzebuje pomocy, nie znalazłem zadawalającej odpowiedz w google wiec postanowilem napisac do Was. Wyjaśnie Wam to na przykladie bazy danych filmów. baza danych ma kolumny np. ID Tytuł Kategoria. I własnie tutaj chodzi mi o ta kategorie - jesli film jest np jednoczesnie komedia i horrorem to znaczy ze ma dwie kategorie. Jak powinna wygladac taka tabela zebym mogl np. wyswietlic komedia i mimo ze ten film ma dwie kategorie to zeby wyjął ten film. Wydaje mi sie ze stworzenie np 10 kolumn z kategoriami (komedia, horror, dokument itd itp) i umieszczanie ptaszka ze TAK nalezy do tej kategorii to nie jest dobry pomys. Na pewno jest na to sposob. Mozecie mi napisac jaki ? dziekuje
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
Damonsson
post
Post #2





Grupa: Zarejestrowani
Postów: 2 355
Pomógł: 533
Dołączył: 15.01.2010
Skąd: Bydgoszcz

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


Relacja wiele do wielu. Klucze obce.

1. tabela
film_id | nazwa_filmu

2. tabela
kategoria_id | nazwa_kategorii

3. tabela
fk_film_id | fk_kategoria_id

Łączenie po kluczach:
fk_film_id = film_id
fk_kategoria_id = kategoria_id
Go to the top of the page
+Quote Post
gosciuuu
post
Post #3





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 14.02.2013

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


W ten sposób, myślałem ze moze jest jakas opcja zeby wymieniać je w komórce oddzielajac je jakims specjalnym znakiem, aby SELECT był latwy i nie stwarzal problemow ?
Go to the top of the page
+Quote Post
Damonsson
post
Post #4





Grupa: Zarejestrowani
Postów: 2 355
Pomógł: 533
Dołączył: 15.01.2010
Skąd: Bydgoszcz

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


Nie, właśnie w ten sposób stworzyłbyś problemy i wszystko utrudnił. Gdybyś wklepał do google zdania z mojego pierwszego wiersza, mógłbyś o tym samemu poczytać.
Go to the top of the page
+Quote Post
moraw2008
post
Post #5





Grupa: Zarejestrowani
Postów: 26
Pomógł: 1
Dołączył: 21.02.2008

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


Cytat(gosciuuu @ 19.02.2013, 20:07:41 ) *
I własnie tutaj chodzi mi o ta kategorie - jesli film jest np jednoczesnie komedia i horrorem to znaczy ze ma dwie kategorie.


Masz tutaj trochę teorii na przykładzie OSOBY, PROJEKTU I ROLI

Budując tabele OSOBA mógłbś dać kolumny id_roli i id_osoby i pamiętać oba te parametry, ale osoba z czasem będzie miała wiele ról i wiele projektów na głowie a tak jak zaproponowałeś aby w jednym polu pisać wiele numerów id_ról oddzielanych czymkowliek niczego dobrego nie wróży. (nie slyszałem aby ktoś tak nawet próbował).

Cytat
Stosując przedstawioną metodę wprowadzamy nową encję asocjacyjną, której zadaniem jest opisać związek zachodzący między osobami, projektami i rolami. Jednoznaczny identyfikator nowej encji tworzą trzy wprowadzone związki tj. klucze obce do encji Osoba, Projekt i Rola.


W Twoim przypadku
1. Jak robisz dwie encje (tabele):

FILM (film_id, kategoria_id FK)
KATEGORIA (kategoria_id)

i kategoria _Id jako klucz obcy wskakuje do encji FILM, określając kategorie filmu nie ma możliwości pamiętania kilku kategorii - możesz nadpisywać istniejący klucz, zmieniając kategorię ale nie zapamiętasz ich więcej.

2. Tak jak kolega powyżej CI napisał, musisz wprowadzić trzecią encję (tabelę) dodatkowo modelującą związek wiele do wielu
np.

FILM(film_id)
KATEGORIA(kategoria_id)
PRZYNALEZNOSC_KATEGORII (film_id PK FK1,kategoria_id PK, FK2)

Teraz możesz pamiętać połączenia wielu filmów z wieloma kategoriami.

Przeanalizuj to sobie tutaj na przykładzie OSOBY, PROJEKTU I ROLI

http://edu.pjwstk.edu.pl/wyklady/rbd/scb/w.../ERDa.htm#Trans
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 11:58