Професионална програма
Loading...
+ Нов въпрос
kr056 avatar kr056 64 Точки

[Judge] Table Relations Exercise- Problem 06. University Database

Здрайвете,за тази задачка както и за Problem 05. Online Store DB от същото упражнение имам следният проблем със Judge,нулевият тест не минава поради следната причина - 

https://imgur.com/2zgRiEb

А това е кода

CREATE TABLE majors(
	major_id INT(11) PRIMARY KEY AUTO_INCREMENT,
    name VARCHAR(50)
);

CREATE TABLE students(
	student_id INT(11) PRIMARY KEY AUTO_INCREMENT,
    student_number VARCHAR(12),
    student_name VARCHAR(50),
    major_id INT(11),
    CONSTRAINT fk_students_majors
    FOREIGN KEY (major_id)
    REFERENCES majors(major_id)
);

CREATE TABLE payments(
	payment_id INT(11) PRIMARY KEY AUTO_INCREMENT,
    payment_date DATE,
    payment_amount DECIMAL(8,2),
    student_id INT(11),
    CONSTRAINT fk_payments_students
    FOREIGN KEY (student_id)
    REFERENCES students(student_id)
);

CREATE TABLE subjects(
	subject_id INT(11) PRIMARY KEY AUTO_INCREMENT,
    subject_name VARCHAR(50)
);

CREATE TABLE agenda(
	student_id INT(11),
    subject_id INT(11),
    CONSTRAINT pk_agenda
    PRIMARY KEY (student_id,subject_id),
    CONSTRAINT fk_agenda_students
    FOREIGN KEY (student_id)
    REFERENCES students (student_id),
    CONSTRAINT fk_agenda_subjects
    FOREIGN KEY (subject_id)
    REFERENCES subjects (subject_id)
);

Не мога да разбера какъв е проблема с INT(11)

Тагове:
0
Databases Basics - MySQL 12/02/2020 13:37:52
FilipStefanov avatar FilipStefanov 3 Точки

Подредбата на създаване не ти е правилна, нямаш "NOT NULL"  зад ID-тата.

 

CREATE TABLE `subjects` (
    `subject_id` INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
    `subject_name` VARCHAR(50)
);
CREATE TABLE `majors` (
    `major_id` INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
    `name` VARCHAR(50)
);
CREATE TABLE `students` (
    `student_id` INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
    `student_number` VARCHAR(12) UNIQUE,
    `student_name` VARCHAR(50),
    `major_id` INT,
    CONSTRAINT fk_students_majors FOREIGN KEY (`major_id`)
        REFERENCES `majors` (`major_id`)
);

CREATE TABLE `payments` (
    `payment_id` INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
    `payment_date` DATE,
    `payment_amount` DECIMAL(8 , 2 ),
    `student_id` INT NOT NULL,
    CONSTRAINT fk_payments_students FOREIGN KEY (`student_id`)
        REFERENCES `students` (`student_id`)
);

CREATE TABLE `agenda` (
    `student_id` INT NOT NULL,
    `subject_id` INT NOT NULL,
    PRIMARY KEY (`student_id` , `subject_id`),
    CONSTRAINT fk_agenda_students FOREIGN KEY (`student_id`)
        REFERENCES `students` (`student_id`),
    CONSTRAINT fk_agenda_subjects FOREIGN KEY (`subject_id`)
        REFERENCES `subjects` (`subject_id`)
);
 

0
kr056 avatar kr056 64 Точки

Как разбрахте че подредбата ми не е правилна,след като в нулевият тест не излиза грешка за това,от NOT NULL не е също пак ми дава същият резултат,а и други задачи от упражнението минават и без NOT NULL на Primary Key-овете също в документацията пише това

PRIMARY KEY is a unique index where all key columns must be defined as NOT NULL. If they are not explicitly declared as NOT NULL, MySQL declares them so implicitly (and silently).

Решението което сте дали дава същият резултат със същата грешка на нулевият тест.

0
12/02/2020 18:10:00