먼저, 나는 this StackOverflow question을 읽었으므로 그것을 향해 나를 가리킬 필요가 없다.테이블에 관계없는 외래 키?
지금 당장 비슷한 문제가 발생합니다. 특히, db 내의 다른 테이블에 대한 감사 정보를 저장하는 데 사용되는 감사 테이블이있는 데이터베이스가 있습니다. 이 테이블의 기본 형식은 다음과 같습니다
이ID가에는 EntityID, EntityTypeID, ActionTypeID 지금 날짜 시간
, 당신은 추측 할 수로서에는 EntityID의 일반적인 성격과이 테이블에서 외래 키 관계에 까다로운 것을 의미 특히 ORM 시스템을 통해 여러분과 함께 관리하십시오.
물론, grunt-work 솔루션은 필요한 쿼리를 수동으로 수행하고 작동하는 ORM 항목을 사용합니다.
그러나이 문제는 테이블의 외래 키 관계를 허용하는 RDBMS가 있는지 여부에 대한 내 의문을 제기합니다. Table : ID가 정의됩니다. '1 TableA의'와 'TableB의 : somekey'
그래서 ...
인가가 즉
는 같은 RDBMS에서 EntityTypeID 열 힘은 가
같은
같은 값을 포함 이 작업을 수행하는 RDBMS는 무엇입니까?
당신이 맞습니다 - 감사는 일반적으로 "역사적"을 의미합니다. 따라서 FK를 만들 수 없습니다. –
나는 당신이 그걸로 말하고있는 논리를 본다. 그러나 삭제와 관련하여 귀하의 의견에 동의하지 않습니다. 대부분의 경우, 내가 작업 한 데이터베이스의 전부는 아니지만 실제로는 레코드를 "삭제"하는 것은 레코드를 "삭제"하는 것과 같이 실제로 삭제하지 않고 불리언 값 열을 통해 삭제 된 것으로 표시하는 시스템 내의 여러 테이블간에 많은 관계가 있습니다. 이 접근법은 또한 RDB 데이터를 절대로 제거해서는 안된다는 제 태도와 섞여 있습니다. – OOPMan
@OOPMan : '아무 것도 삭제하지 마라'라는 견해에 상당한 동정을 느낀다. 임시 데이터베이스는 명시 적으로 지원합니다 (또는 수행 할 수 있음). 그러나, 나는 레코드가 실제로 사라지는 것을 의미하는 용어 DELETE의 전통적인 정의를 사용하고있었습니다. –