이것은 프로젝트를위한 것입니다. 나는 사무실을위한 여러 종류의 기록을위한 데이터베이스를 만들고있다. 레코드 테이블의 모든 기본 키를 수집하는 테이블이 있습니다. 따라서 이러한 테이블을 참조하는 외래 키가 필요합니다. 그리고 나는 길을 잃었다. 나는 매우 충직 한 친구 구글에게 물었다. 그러나 나는 이것에 대한 가능한 대답을 이해하지 못했다.SQL - 다른 테이블의 기본 키 (Postgres)를 참조하는 외래 키
다음은 내가 작성한 것입니다 (테이블의 이름은 실제 이름이 아니며 여기서 일반적으로 사용하기를 원합니다).
편집 : 나는 포스트 그레스
을 사용하고RecordsTable :
recordId -> references record1 id,record2 id,record2 id
docId -> identifies what kind of record it is
filingDate
신기록 :
id
attribute2
attribute3
Record2 :
id
attribute2
attribute3
Record3 :
,451,515,attribute2
attribute3
사실, 신기록, Record2 및 Record3 30 개 이상의 열이 각 (예를 들어, 출생 증명서를 상상)
가 RecordsTable가 사용자에게 표시되는 하나가 될 수 있습니다. 사용자가 무언가를 편집해야하는 경우에만 record1-3이 표시됩니다.
필자는 기록 1-3의 기록 기록을 만들 것이라고 생각했지만 기록 보관소에 처음 입력해야 할 필요가있는 사용자에게는 문제가 될 것입니다. 이는 기록 보관소가 아닌 것입니다. 한 번에 모든 것을 보여주는 것이 좋지 않기 때문에 사무실에 접수 된 모든 기록의 요약을 보여주는 것입니다.
불명확 한 점이 있으면 자세히 설명해주세요. 미리 감사드립니다.
하는가를'RecordsTable' 전혀 존재해야합니다. 개별 레코드 테이블 (및 공통 컬럼) 사이에'UNION ALL '을 수행하는 뷰가 더 나은 목적을 제공하지 않을까요? –
+1 @Damien_The_Unbeliever; 모든 레코드 테이블에서 고유 ID를 사용하면 쿼리가 훨씬 빨라지고 쿼리가 훨씬 간단 해집니다. – Ben
@Ben - 열을 추가한다고 가정합니다. 'TableName'이면'TableName'과'Id'의 조합은 더 이상 노력하지 않고 유일해야합니다. –