konto usunięte

Temat: Prosty projekt bazy danych

Witam

Mam zrobić prostą stroną internetową w oparciu o MSSQL Ma to być bardzo prosta strona co wyświetla dane o filmach, aktorach, dacie produkcji itd.

Rozrysowałem ją, ale mam problem z kluczem obcym. MS SQL SERVER wyskakuje z bledami gdy probuje ustawic takie typu relacje. Podejrzewaz ze mam zle ustawione klucze obce ale nie moge jakoś tego zrozumieć. Czy mógłby ktoś mi udzielić kilka wskazówek prosze ?

Zdjęcie diagramu z relacjami poniżej


Obrazek
Łukasz Kaszubowski

Łukasz Kaszubowski Student, Wyższa
Szkoła Gospodarki w
Bydgoszczy

Temat: Prosty projekt bazy danych

Byś musiał zrobić to tak:
Tabela Movies:
Id(PK),
Title,
Year,
Director,
Link,
Description
Id_Actors(FK),
Id_Category(FK)

Tabela Actors
Id_Actors(PK),
First_Name,
Last_Name

Tabela Category
Id_Category(PK),
Name
Marcin Mackiewicz

Marcin Mackiewicz Programista JAVA, RS
Adware Polska

Temat: Prosty projekt bazy danych

Jak to ma być WEB to nie zapomnij o słownikach... ułatwiają życie. No i o przelaczniku bool ktorym bedziesz mogl decydowac co ma sie wyswietlac a co nie...
movies(
id (PK),
title_orginal,
title_polish,
year,
link,
description,
visible
)

-- moze byc wielu rezyserow
movies_directors(
id_movie (PK) (FK, movies),
id_person (PK) (FK, persons),
visible
)

-- moze byc wielu aktorow
movies_actors(
id_movie (PK) (FK, movies),
id_person (PK) (FK, persons),
visible
)

-- moze byc wiele kategorii
movies_categories(
id_movie (PK) (FK, movies),
id_person (PK) (FK, categories)
visible
)


-- slownik osob
persons(
id (PK),
id_role (FK, roles),
first_name,
last_name,
date_od_birth,
visible
)

-- rokle osob: rezyser, aktor, scenarzysta, itp...
persons_roles(
id (PK),
name,
visible
)

-- slownik kategorii
categories(
id (PK),
name,
visible
)

Przedmówca zrobił prawie dobrze :) ale proszę mi pokazać film który ma tylko jednego aktora...
albo kwalifikuje się tylko do jednej kategorii

Kluczami łączysz kolumny id oraz id_xxx... te wszystkie kolumny są typu liczbowego... akademickie zadanie więc najlepiej użyć standardowego int'aMarcin Mackiewicz edytował(a) ten post dnia 20.03.13 o godzinie 06:23
Marcin Miga

Marcin Miga Programista. Po
prostu programista.

Temat: Prosty projekt bazy danych

Można pójść jeszcze bardziej optymalnie. Po co tworzyć tabele 'filmy_aktorzy', 'filmy_rezyserzy', 'filmy_scenarzysci', 'filmy_muzycy' ...
Wystarczy zmodyfikować 'movies_actors' i zrobic z tego 'movies_people':
movies_peole
(
id_movie (PK) (FK, movies),
id_person (PK) (FK, persons),
id_role (PK) (FK, persons_roles)
...)

I łatwiejsze zapytania, i np. łatwiej znajdziesz film, gdzie Tarantino jest aktorem, reżyserem i scenarzystą.

pozdrawiaMM
Damian Snoch

Damian Snoch Typ konstruktora, a
nie destruktora...

Temat: Prosty projekt bazy danych

Jeżeli chodzi o Categories to możesz to zrobić w ten sposób, że jedna kategoria może mieć wiele podkategorii np:

CATEGORIES:

ID_CATEGORY
ID_PARENT
NAME
DESCRIBE

P.S W innych tabelkach dałeś nazwę w liczbie mnogiej, a kategorie nie :) Nazwy tabel zawsze dawaj w liczbie mnogiej ponieważ jest to zbiór krotek.

Pozdrawiam DS.

konto usunięte

Temat: Prosty projekt bazy danych

Dzięki za wszystkie odpowiedzi. Poszlo bardzo gładko dzięki Wam.Andrzej Bąba edytował(a) ten post dnia 27.03.13 o godzinie 20:54

Następna dyskusja:

Prosty projekt bazy danych.




Wyślij zaproszenie do