Sprawdzenie poprawności schematu bazy danych

0

Stworzyłem schemat bazy do zarządzania uczelnią (dodawanie i edycja ocen,wpłat oraz danych o studentach i wykładowcach ).
Wygląda on następująco: http://i.imgur.com/gEMmc5C.png?1
Nie mogę utworzyć takiej bazy bo przy jej tworzeniu z wygenerowanego kodu w workbenchu wyskakuje mi taki error:

 Executing SQL script in server
ERROR: Error 1215: Cannot add foreign key constraint
SQL Code:
        CREATE TABLE IF NOT EXISTS `bdstud`.`kierunek` (
          `idKierunek` INT NOT NULL AUTO_INCREMENT,
          `Nazwa_kierunku` VARCHAR(45) NULL,
          PRIMARY KEY (`idKierunek`))
        ENGINE = InnoDB
        DEFAULT CHARACTER SET = utf8

SQL script execution finished: statements: 6 succeeded, 1 failed

Fetching back view definitions in final form.
Nothing to fetch

Czy ktoś wie gdzie tkwi przyczyna błędu?

1

pewnie w kolejności generowania tabel

0

Pomogło thx a co sądzisz o tym schemacie czy jest poprawny?

1

wg mnie tabelę typwpłaty powinieneś połączyć z tabelą wpłaty w jedną tabelę oraz z tabel wykladowcy i studenci przenieść imie, nazwisko, adres, tel do tabeli uzytkownik (tabela wykladowcy przestanie być potrzebna). Dalej masz miszmasz w nazewnictwie - raz tabela jest w liczbie pojedynczej raz w mnogiej, raz masz idstudent a raz nr_tel

1

Nie wiem jak @abrakadaber ale ja nie lubię takiego rozbicia jak zrobiłeś na user,student,wykładowca. Przy bardziej zaawansowanych zapytaniach z użyciem users będziesz musiał robić IF/CASE który zweryfikuje czy dany user jest wykładowcą czy studentem i spinać z innymi tabelami aby np wyciągnąć imię i nazwisko. Ja bym pozbył się tabeli users i dorobił pola login,hasło do tabel wykładowcy, studenci (lub zrobić tak jak podał @abrakadaber). Aczkolwiek jest to tylko moja sugestia nie twierdzę wcale, że to co ty zrobiłeś jest złe.

0

Dzięki za pomoc

1 użytkowników online, w tym zalogowanych: 0, gości: 1