A라는 테이블이 회원정보 테이블이라고 칠때
PK를 두 개 설정하는 것이 이상하게 여겨지는군요.
PK는 말 그대로 Primary Key이므로, 외래키로 사용되기에 적합한 '하나의'키라고 생각하고 있었습니다만...
보여주신 A테이블은 PK가 두개군요. ID는 PK가 아닌 Unique정도로 사용하는 것이 옳다고 생각합니다.
위와 같이 고치시면 외래키가 두 개 생기는 문제도 자연히 해결될 것으로 보이네요. 저는 말씀해주신 툴을 사용해보지는 않았지만, 1:N관계에 대한 외래키는 대상 테이블의 PK를 그냥 가져오는 것으로 생각됩니다.
넵 저도 no는 pk에서 빼버리고 싶은데 공동 작업자가 no가 있어야 작업이 편하다고 ai 로 넣자고 하네요 ai 일경우 pk가 아니면 안되는걸로 알고있는데 no를 ai 주는 방법은 어떻게 해야 할까요?
auto_increment가 설정된 field는 index를 걸어줘야 하고, B테이블의 ID는 이미 A테이블에서 foreign key로 들어올 것을 감안한다면 제거해야 하므로 (제거하지 않으면 1차 정규화도 만족시키지 못하게 됩니다.) A테이블 NO: unique ID: pk NAME B테이블 NO: pk A_ID: foreign key COMMENT 가 최종적으로 생성되는 형태가 맞을 것으로 보입니다. 하지만 보통 ID는 VARCHAR로 구성되는 것을 감안하면(키는 짧을 수록 좋으므로) A테이블 NO: pk ID: unique NAME B테이블 NO: pk A_NO: forine key COMMENT 도 대안으로 삼을만 합니다. (특히 ID바꿔달라고 쌩 쑈를 하는 고객이 있을 경우 -_-;; ) 참고로 no를 pk에서 빼고 uniqe로만 설정을 하시는 것은 alter table을 참조하시면 되겠습니다.