Sprawdzenie poprawności schematu bazy danych

Sprawdzenie poprawności schematu bazy danych
54
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 60
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:

Kopiuj
 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?

abrakadaber
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 6610
1

pewnie w kolejności generowania tabel

54
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 60
0

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

abrakadaber
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 6610
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

woolfik
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1611
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.

54
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 60
0

Dzięki za pomoc

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.