2013-10-18 1 views
1

내 데이터베이스에서 임시 데이터를 포함 할 테이블 하나를 만들고 나중에 해당 데이터의 일부가 삭제됩니다. 그 테이블은 IP 컬럼을 포함 할 것입니다. 문제는 이미 다른 테이블에 IP를 저장하고 다른 많은 테이블에서이 테이블을 참조한다는 것입니다. 따라서 새 테이블 (임시 데이터를 포함 할 것입니다)에 외래 키 제약 조건을 만들고 나중에 행을 삭제하면 새 열에 외래 키 참조가있는 경우 원래 테이블에 유용하지 않은 IP-s가 생깁니다.외래 키 참조가없는 SQL 열

열 :

IP, 
    Col1 

표 2 열 :

IP, 
    Col1, 
    Col2 

그래서 제 질문은, 그것을 필요로 할 때 외래 키 참조가없는 열을 만들 수있는 좋은 방법입니다? 그것은 ok db 디자인은 IP 열의 Table2에 외래 키 참조를 만들지 않습니까?

답변

0

일부 상황에서는 FK 참조가없는 열을 만들 수도 있지만 제약이 없기 때문에 한 테이블에서 데이터를 삭제하고 다른 테이블에서 분리 된 레코드를 가질 수 있습니다.

또한 한 테이블에 입력하는 데이터가 다른 테이블에도 존재한다는 것을 강요 할 수 없습니다.

여기서 중요한 질문은 IP를 다른 테이블에 저장하더라도 IP 열을 사용하여 새 테이블을 기존 테이블에 조인해야한다는 것입니다. 그렇지 않다면 당신은 FK에 아무 쓸모가 없습니다.

+0

어떤 식 으로든 새 테이블에 가입 할 필요가 없습니다. 하나의 조건을 만족하면 새 테이블의 데이터가 삭제됩니다. 나중에 조인을하지 않고 해당 데이터를 사용하지 않습니다. – user1797770

+0

그렇다면 FK는 필요하지 않습니다 :) – Purplegoldfish

+0

저는 처음부터 그 것을 알았습니다 :)하지만 좋은 db 디자인입니까? 나는 그 접근법을 어디에서도 본 적이 없다. – user1797770

0

세션 데이터를 저장하는 데 하나의 테이블을 사용하고 IP에 대한 데이터를 더 영구적으로 저장하는 다른 테이블을 사용한다고 가정합니다.

세션 테이블의 IP를 IP에 대한 추가 정보가있는 테이블의 외래 키로 사용할 수 있습니다. 이 시간에 응용 프로그램을 사용하는 모든 사람에 대한 정보를 쿼리하려는 경우 유용합니다.

+0

예,하지만 새 테이블의 데이터가 필요하지 않습니다. 하나의 조건을 만족하면 해당 테이블의 데이터가 삭제됩니다. 조인 필요 없음 – user1797770