>source

해적과 현상금 두 테이블이 있습니다.

<테이블 클래스="s-테이블"> <머리> 해적 바운티 <바디> ID ID 이름 값 . 해적 ID

한 명의 해적은 많은 현상금을 가질 수 있지만 한 명의 현상금은 한 명의 해적만 가질 수 있습니다. 문제는 이전의 모든 현상금을 추적해야 하기 때문에 실제 현상금이 무엇인지 알아야 한다는 것입니다.

내 솔루션은 지연 제약 조건 fk를 사용하여 순환 참조를 만드는 것이므로 내 테이블은 다음과 같습니다.

<테이블 클래스="s-테이블"> <머리> 해적 바운티 <바디> ID ID 이름 값 바운티 해적 ID

또는 해당 현상금이 실제 현상금인지 확인하기 위해 하나의 열을 추가할 수 있습니다.

<테이블 클래스="s-테이블"> <머리> 해적 바운티 <바디> ID ID 이름 값 is_actual 해적 ID

가장 좋은 방법은 무엇입니까? 어떤 제안?

내가 이해하고 있는지 확실하지 않습니다. 각 현상금은 pirate_id FK에 의해 단일 해적과 관련됩니다. 이제 각 해적이 "현재 현상금"이라고 하는 단일 현상금과 다른 관계를 갖기를 원한다고 말합니다. 이 경우 첫 번째 솔루션이 작동합니다(첫 번째 테이블의 bounty 또는 bounty_id 열). 그리고 당신이 말했듯이 이 FK도 연기할 수 있어야 합니다. 이것은 PostgreSQL 및 Oracle에서만 지원됩니다.

The Impaler2021-09-24 13:03:11

예, 이 해적의 실제 현상금이 무엇인지 알아야 하기 때문입니다.

toni2021-09-24 13:03:11

마지막 테이블을 편집했는데 실수를 해서 is_actual을 잘못된 테이블에 넣었습니다.

toni2021-09-24 13:03:11

"이전의 모든 현상금을 추적해야 하기 때문에" -가장 최근의 현상금만 "현재/실제" 현상금임을 의미합니까? 그 이력/순서를 신경쓰세요? 현상금 테이블에 타임스탬프를 추가할 수 있습니다. 현재 현상금은 최신 타임스탬프가 있는 해적당 하나입니다.

Jon Armstrong2021-09-24 13:03:11

최근에 추가된 현상금으로 현재 현상금을 받을까 생각했지만 미래에 문제가 생길까 두려웠고 현재 현상금을 직접 참조하는 것보다 이와 같이 검색하는 것이 느리지 않을까요? 예, 나는 다른 현상금과 그 주문에 관심이 있습니다.

toni2021-09-24 13:03:11
  • 이전 kubernetes : K8s 서비스에 속한 포드에 대한 병렬 요청을 피하는 방법은 무엇입니까?
  • 다음 PowerShell 폴더 내의 파일만 가져오기 >루트로 이동 >폴더만 삭제 >ShareFile에 업로드