주제에 대한 이해가 정확하지 않은 것으로 느껴지므로 구체적으로하려고합니다. 내 문제는 alter 문으로 추가 한 외래 키가있는 테이블간에 관계를 만드는 방법을 이해하는 것입니다. 나는이 테이블을 가지고있다.외래 키 및 변경 문과의 MySQL 관계 생성
Tag has a one to one connection to Category
Category has a many to one connection to User
User has a one to many connection to Article
그리고 내가 거기에 문을 사용하는 것이 할 :
이 세 번째 실패ALTER TABLE tag ADD CONSTRAINT FOREIGN KEY (tag_id) REFERENCES category (category_id);
ALTER TABLE category ADD CONSTRAINT FOREIGN KEY (user_id) REFERENCES user (user_id);
ALTER TABLE user ADD CONSTRAINT FOREIGN KEY (user_id) REFERENCES article (user_id);
내 문제가 있음을
CREATE TABLE article (
content TEXT NOT NULL,
published_on DATE NOT NULL,
created_on DATE NOT NULL,
);
CREATE TABLE category(
name VARCHAR(30) NOT NULL,
date_created DATE NOT NULL,
);
CREATE TABLE user(
income FLOAT(30, 30) NOT NULL,
password VARCHAR(30) NOT NULL,
picture_url TEXT NOT NULL,
);
CREATE TABLE tag(
description VARCHAR(30) NOT NULL,
second_priority FLOAT(30, 30) NOT NULL,
);
는 내가 거기 관계를 확인해야합니다. 기사와 사용자의 위치를 전환하면 제약 조건이 통과됩니다. 조금 파고 실험 한 후에 나는 하나가 유일 키이거나 1 차 키이거나 다른 하나가 NULL이 아닌 두 개의 키를 제약 할 수 없다는 것을 알아 냈습니다. 지금까지 나는 어떻게 계속 해야할지 모르겠다. 누군가가 나를 잃어 버렸기 때문에이 테이블들 사이에 일대일, 대다수, 일대일 및 다 대다 관계를 만드는 방법에 대해 가르쳐 주실 수 있겠습니까? 내 머리가 엉망이야. (30) INT를 사용하는 이유는 이 PK를 누락 :
FULL 다도는 :
CREATE DATABASE exam_database;
USE exam_database;
CREATE TABLE article (
content TEXT NOT NULL,
published_on DATE NOT NULL,
created_on DATE NOT NULL,
user_id INT(30) NOT NULL
);
CREATE TABLE category(
name VARCHAR(30) NOT NULL,
date_created DATE NOT NULL,
category_id INT(30) NOT NULL PRIMARY KEY AUTO_INCREMENT UNIQUE,
user_id INT(30) NOT NULL
);
CREATE TABLE user(
income FLOAT(30, 30) NOT NULL,
password VARCHAR(30) NOT NULL,
picture_url TEXT NOT NULL,
user_id INT(30) NOT NULL PRIMARY KEY AUTO_INCREMENT UNIQUE
);
CREATE TABLE tag(
description VARCHAR(30) NOT NULL,
second_priority FLOAT(30, 30) NOT NULL,
tag_id INT(30) NOT NULL PRIMARY KEY AUTO_INCREMENT UNIQUE
);
ALTER TABLE tag ADD CONSTRAINT FOREIGN KEY (tag_id) REFERENCES category (category_id);
ALTER TABLE category ADD CONSTRAINT FOREIGN KEY (user_id) REFERENCES user (user_id);
ALTER TABLE user ADD CONSTRAINT FOREIGN KEY (user_id) REFERENCES article (user_id);
귀하의 전체 (키) –
@AnR 여기 ...이 테이블에 대한 문을 만들 전체 코드 –
만약'user_id'가'user' 테이블의 PK라면 (아마도 기대할 것입니다.),'article.user_id'는 분명히 그것을 참조하고 다른 방법은 아닙니다. – eggyal