Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Relacje
Forum PHP.pl > Forum > Bazy danych > Oracle
cezarylee
Witam, mam za zadanie napisać prostą bazę, rolleyes.gif Mam problem z ustawieniem relacji. Nie mowiąc o sekwencjach (jeszcze do tego nie doszedłem)

1 tabelka

  1. CREATE TABLE film (
  2. id_film number
  3. , tytul varchar(30)
  4. , gatunek varchar(20)
  5. , rok number NOT NULL
  6. , rezyser varchar(35)
  7. , produkcja varchar(50)
  8. , dystrybucja varchar(50)
  9. , PRIMARY KEY (id_film)
  10. )


wstawiam wiersz
  1. INSERT INTO film VALUES ('0','Zagubiona Autostrada','Psychologiczny','1997','Lynch','USA','Gutek Film');


2 tabelka, gdzie pole reżyser ma być brane do tabelki 1.
  1. CREATE TABLE rezyserzy (
  2. id_rez number
  3. , nazwisko varchar(30)
  4. , imie varchar(20)
  5. , narodowosc varchar(20)
  6. , PRIMARY KEY (id_rez)
  7. , FOREIGN KEY(id_film) REFERENCES film(id_film)
  8. );


  1. INSERT INTO rezyser VALUES ('0','Lynch','David','USA');


gdzie tu jest bład
phpion
Odpowiem ci tak jak moj prowadzacy z programowania w C: 'Blad jest w kodzie'
A tak powaznie: czy przypadkiem klucz obcy nie powinien byc w tabeli film na polu rezyser (konkretnie to id_rezysera) i odnosic sie do tabeli rezyserzy do pola id_rez?
JaRoPHP
Cytat
gdzie tu jest bład
Jak znam bazy danych, to komunikat błędu został wyświetlony.

Napisałeś strukturę dwóch tabel (miło z Twojej strony smile.gif ) i dwa zapytania. Ale które zwraca błąd (pierwsze, drugie, obydwa)?
W drugim zapytaniu jest błąd w nazwie: tabele ma nazwę rezyserzy, a wstawiasz do tabeli rezyser.
cezarylee
POdam screena najlepiej, teraz zmieniłem zapytanie od. tabeli film, jak mówliliście, i poprawielm nazwe tab. rezyser, ale i tak jest bład.

phpion
W tabeli rezyserzy nie masz pola id_film
cezarylee
Cytat(phpion.com @ 16.02.2007, 10:53:28 ) *
W tabeli rezyserzy nie masz pola id_film



Hmm, ale to ono będzie występować "oddzielnie", i trzeba by zrobić jakąś relacje, zeby wiedział, ze to pole jest z innej tabeli, a nie moge zrobić relacji do nie istniejącej jeszcze tabeli rezyser. (bede robil od nowa)

Dopisałem do tabeli film:
...
...
, primary key (id_film)
, foreign key(id_rez) references rezyser(id_rez);

Hm, caly czas ma problem z tą definicją id_rez, ale skladnia jest raczej ok. sadsmiley02.gif
JaRoPHP
Cytat(cezarylee @ 16.02.2007, 11:24:39 ) *
Hmm, ale to ono będzie występować "oddzielnie", i trzeba by zrobić jakąś relacje, zeby wiedział, ze to pole jest z innej tabeli, a nie moge zrobić relacji do nie istniejącej jeszcze tabeli rezyser. (bede robil od nowa)
No właśnie, a w zapytaniu które pokazałeś (link), próbujesz odwołać się do tabeli rezyser. To masz tą tabelę, czy nie?
SongoQ
@cezarylee Polecam jakas ksiazke o relacyjnych bazach danych bo tu sie podstawy klaniaja. Jak sie patrzy na takie posty to az sie niedobrze robi.
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.