나는이 질문을하는 방법을 모르므로 실제로 Google에 연결할 수는 없지만 쉽게 대답 할 수 있습니다.사용자 테이블과 다른 테이블을 연결하는 방법
사용자가있는 테이블과 X 개의 행이있는 테이블이 있습니다. 내가 뭘 찾고 x 행에 모든 사용자를 관련시킬 수있을 것입니다. 동시에 행에 관련된 많은 사용자가있을 수 있습니다. 두 가지 모두입니다.
나는이 질문을하는 방법을 모르므로 실제로 Google에 연결할 수는 없지만 쉽게 대답 할 수 있습니다.사용자 테이블과 다른 테이블을 연결하는 방법
사용자가있는 테이블과 X 개의 행이있는 테이블이 있습니다. 내가 뭘 찾고 x 행에 모든 사용자를 관련시킬 수있을 것입니다. 동시에 행에 관련된 많은 사용자가있을 수 있습니다. 두 가지 모두입니다.
다른 테이블에 "외래 키"를 넣습니다.
Users
----------
ID (int, PK)
Name (varchar)
etc.
그런 다음 다른 테이블에서이 테이블에 다시 가리키는 열 것 :의 당신이
Users
테이블이 있다고 가정 해 봅시다
Widgets
----------
ID (int, PK)
UserID (int, FK) <-- this is the foreign key
etc.
생성 방법의 구문이 외래 키 관계 것 사용중인 데이터베이스에 따라 다르면 문서에 있습니다. 그런 외래 키에는 다양한 옵션이 있지만 중요한 점은 데이터에서 관계형 무결성을 유지한다는 것입니다. 따라서 Widgets
에 UserID
이 포함 된 레코드를 삽입하려고하면 데이터를 관련시키기 위해 ID
에 Users
이 있어야하므로 오류가 발생합니다. 이 관계는 장소에 있으면
는 데이터를 조회하는 것은 간단하다
SELECT * FROM Users
INNER JOIN Widgets
ON Users.ID = Widgets.UserID
편집 : 당신이 많은에 "많은 찾고있는 것처럼 아래의 의견을 바탕으로, 그것은 소리 "관계. 같은 개념으로 연결하기위한 중간 테이블 만 있으면됩니다. 이런 식으로 뭔가 :
Users
----------
ID (int, PK)
Name (varchar)
etc.
Widgets
----------
ID (int, PK)
etc.
UserWidgets
----------
ID (int, PK) <-- optional, the PK could be a composite of the FKs
UserID (int, FK)
WidgetID (int, FK)
지금 어떤 사용자와 어떤 위젯이
UserWidgets
테이블에 더 많은 기록을 추가하는 방법으로, 다른 임의의 수에 연결할 수 있습니다. 이 테이블은 관계이기 때문에 관계를 보유합니다.
쿼리는 다른 가입 그냥 :
SELECT * FROM Users
INNER JOIN UserWidgets
ON Users.ID = UserWidgets.UserID
INNER JOIN Widgets
ON UserWidgets.WidgetID = Widgets.ID
예,하지만 위젯이 1 명 이상의 사용자와 관련이있을 수 있습니다. 어떻게하면 될까요? –
@ pato.llaguno : 지정된 내용과 다릅니다. 이 관계가 정확히 무엇입니까? 사용자가 많은 위젯을 가질 수 있고 위젯이 많은 사용자를 가질 수 있습니까? – David
예, 두 가지 방법입니다. –
당신은 기본적으로 정규화에 대해 얘기하고는 관계를 해결하기 위해 여기에 외래 키 제약 조건을 사용할 수 있습니다.
예 : EMP (MANY) 및 DEPT (ONE) [한 부서에 많은 직원이있는 경우] EEP 테이블에 외래 키로 DEPT_ID (DEPT 테이블의 부서 행을 식별 함)를 넣습니다.
유스 케이스와 유사한 해결책을 적용 할 수 있습니다.
당신이 찾고있는 것을 "외래 키"라고합니다. – David
와 @David가 외래 키가 필요합니다. – SaggingRufus
@SaggingRufus 일종의 명백한 조인 부분입니다. 외래 키가 어떤 것인가를 조인하는 방법은 무엇입니까? –