![]() |
![]() |
![]()
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
|
|
|
![]() |
![]()
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 |
|
|
![]()
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 ?
|
|
|
![]()
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ć.
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 26 Pomógł: 1 Dołączył: 21.02.2008 Ostrzeżenie: (0%) ![]() ![]() |
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 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 11:58 |