테이블에 두 개의 외국 열쇠가 있을 수 있습니까?
저는 다음 표를 가지고 있습니다. 기본 키는 굵은 글씨로 되어 있습니다.이탈릭으로 된 외래 키)
고객표
- ID---Name---Balance---Account_Name---Account_유형
계정 카테고리 테이블
- 계정_유형----잔액
고객상세표
- 계정_Name---First_Name----Last_Name---주소
고객 테이블에 외국인 키를 두 개 가질 수 있으며 MySQL에서 이를 어떻게 구현할 수 있습니까?
업데이트됨
저는 최종 프로젝트를 위해 웹 기반 회계 시스템을 개발하고 있습니다.
계정 카테고리
계정 유형----------------잔액
자산
부채
자기 자본
경비
소득.
자산.
- Asset_ID--------자산 이름----잔액----계정 유형
미수금
- 미수금_ID---------수신 가능한 이름---------주소--------------------------------------------자산_ID----계정 유형
미수금계정
- 거래_ID----설명----금액---잔액------수신 가능_ID----자산_ID---계정 유형
소프트웨어를 이용하여 ER(Entity relationship)도를 그렸고, 관계를 지정하면 위와 같이 자동으로 여러 개의 외국 키를 추가했습니다.디자인이 충분하지 않습니까?
create table Table1
(
id varchar(2),
name varchar(2),
PRIMARY KEY (id)
)
Create table Table1_Addr
(
addid varchar(2),
Address varchar(2),
PRIMARY KEY (addid)
)
Create table Table1_sal
(
salid varchar(2),`enter code here`
addid varchar(2),
id varchar(2),
PRIMARY KEY (salid),
index(addid),
index(id),
FOREIGN KEY (addid) REFERENCES Table1_Addr(addid),
FOREIGN KEY (id) REFERENCES Table1(id)
)
예, MySQL에서는 이를 허용합니다.같은 테이블에 여러 개의 외국 키를 구비할 수 있습니다.
스키마의 외부 키(on)Account_Name
그리고.Account_Type
) 특별한 치료나 구문이 필요하지 않습니다.고객 테이블에 별도의 외국 키 두 개만 신고하면 됩니다.그 단어의 의미있는 의미에서 그것들은 확실히 복합적인 키를 구성하지 않습니다.
이 스키마에는 여러 가지 다른 문제가 있지만, 일반적으로 하나의 고유한 열 또는 하나가 다른 열에 기능적으로 종속된 열로 기본 키를 만드는 것은 좋지 않습니다.이러한 경우 중 하나 이상이 Customer 테이블의 ID 및 Name 열에 적용되는 것으로 나타납니다.이렇게 하면 같은 ID(다른 이름)로 두 개의 행을 만들 수 있는데, 허용하지 않으실 것 같습니다.
예, 테이블에는 하나 또는 여러 개의 외부 키가 있으며 각 외부 키에는 다른 상위 테이블이 있습니다.
CREATE TABLE User (
user_id INT NOT NULL AUTO_INCREMENT,
userName VARCHAR(100) NOT NULL,
password VARCHAR(255) NOT NULL,
email VARCHAR(255) NOT NULL,
userImage LONGBLOB NOT NULL,
Favorite VARCHAR(255) NOT NULL,
PRIMARY KEY (user_id)
);
그리고.
CREATE TABLE Event (
EventID INT NOT NULL AUTO_INCREMENT,
PRIMARY KEY (EventID),
EventName VARCHAR(100) NOT NULL,
EventLocation VARCHAR(100) NOT NULL,
EventPriceRange VARCHAR(100) NOT NULL,
EventDate Date NOT NULL,
EventTime Time NOT NULL,
EventDescription VARCHAR(255) NOT NULL,
EventCategory VARCHAR(255) NOT NULL,
EventImage LONGBLOB NOT NULL,
index(EventID),
FOREIGN KEY (EventID) REFERENCES User(user_id)
);
언급URL : https://stackoverflow.com/questions/9696571/can-a-table-have-two-foreign-keys
'programing' 카테고리의 다른 글
jQuery derped의 "그때" 방법을 언제 사용해야 하고 "파이프" 방법을 언제 사용해야 합니까? (0) | 2023.10.19 |
---|---|
CSS를 사용한 서식 번호(소수점, 수천 개의 구분자, 현지화 등) (0) | 2023.10.19 |
여러 표를 기준으로 합산하는 방법 (0) | 2023.10.14 |
XML 주석 및 "--" (0) | 2023.10.14 |
MYSQL 8.0 - 지원되지 않는 redo 로그 형식 (0) | 2023.10.14 |