문제

어떤 방법을 사용하여 데이터베이스에서 상속(특히 SQL Server2005 에서는)?

가정하자 나는 몇 가지 분야 CreatedOn, 범주 내가 원하는 추가에서의 모든 내 entities.내가 찾고 있는 다른 방법 대신에 이러한 추가 필드가 있습니다.

도움이 되었습니까?

해결책

같은 것은 없으로 상속 테이블 사이에서 SQL Server2005 년,그리고 언급했듯이,다른 사람을 얻을 수 있습으로 얻기까지 도움을 추가하는 데 필요한 열에 테이블을 만들 때,하지만 상속으로 당신은 그것을 알고있다.

그것의 생각처럼 더 템플릿에 대한 귀하의 소스 코드 파일이 있습니다.

로 GateKiller 언급을 만들 수 있습니다 테이블을 포함하는 공유된 데이터 및 기준으로 외국인 핵심이지만,당신은 하나가 감사 후크,트리거 또는 업데이트를 수동으로 합니다.

Bottom line:설명서 작동합니다.

다른 팁

PostgreSQL 는 이 기능이 있습니다.추가 이것을 끝 테이블의 정의:

INHERITS FROM (tablename[, othertable...])

아이 테이블에 대한 모든 것 열의 부모로,그리고 변경하는 부모 테이블이 변경됩니다.또한,모든 것을 아이에는 테이블이 올에서 쿼리 부모 테이블을(기본값).불행하게도 지지 않는 십자가 부모/아이 국경을 의미할 수 없습니다 있는지 확인하는 특정 열유에 걸쳐 모두 부모와 자식입니다.

내가 알기로는 그 기능이 매우 자주 사용.

템플릿을 만들 수 있습니다 템플릿에서 창에서 관리 Studio.다음 사용 템플릿을 할 때마다 새로 만들이다.

실패는 저장할 수 있습니 CreatedOn 고 만든 분야에 감사 추적 테이블 참조 원본 테이블의 id 입니다.

실패하는 그것을 할 수 있습니다.

당신이 사용할 수 있는 데이터 모델링 도구와 같은 ER/스튜디오 또는 ERWin.모두 도구는 도메인의 열을 정의할 수 있는 열 템플릿을 적용할 수 있는 테이블.도메인 변화는 그렇게 관련된 열이 있습니다.ER/스튜디오에는 또한 트리거할 수 있는 템플릿 구축하고 적용하여 어떤 테이블.이것은 우리가 어떻게 업데이트 LastUpdatedBy 및 LastUpdatedDate 열지 않고 구축하고 유지하기 위해 수백 개의 트리거 스크립트가 있습니다.

을 만드는 경우는 감사를 표할 것이 하나의 행한 모든 행에서 모든 테이블을 사용하는 감사는 테이블.를 얻을 수 있는 지저분하다.제 생각에는,당신이팅 감사 열에 있습니다.당신은 또한에 두고 싶 타임스탬프 열에 모두의 테이블이 있습니다.당신이 알고하지 않을 때 동시성 문제가 된다.우리의 DB 감사는 열에 넣어 우리는 모든 테이블:CreatedDt,LastUpdatedBy,LastUpdatedDt 타임 스탬프.

이게 도움이 되었으면 좋겠습니다.

우리는 SProc 는 추가 감사의 열정,테이블과(선택적으로)역사를 만듭니다 테이블과 연결된 트리거의 변화를 추적하는 값을 입력합니다.불행하게도,회사 정책을 의미할 수 없습을 공유,하지만 그것을 실제로는 아무것도 없다 달성하기 어렵다.

를 사용하는 경우 Guid 을 만들 수 있습니다 CreateHistory 테이블과 함께 열 GUID CreatedOn,만든.를 채우기 위한 테이블에 당신은 여전히 만드에 대한 트리거 모든 테이블이나 그것을 처리에 응용 프로그램 논리입니다.

당신이 사용하고 싶지 않은 상속 이렇게하려면!테이블 B,C 및 D 에서 상속되 테이블는다는 것을 의미하는 테이블을 쿼리하는 것입니다 당신의 레코드 B,C 및 D지금 고려하...

에서 삭제;

대신 상속 사용하여 다음과 같 대...

CREATE TABLE blah (
    blah_id     serial       PRIMARY KEY
    , something text         NOT NULL
    , LIKE template_table    INCLUDING DEFALUTS
);

라 메쉬-구현하는 것이라 나는 이를 사용하여 상위 유형과 특수형에 관계에서 나 E-R model.거기에 몇 가지 다른 육체적인 옵션을 구현하는 관계뿐만 아니라.

에 매핑 또는 상속도 부모 테이블의 부모와 자식 테이블을 사용하여 동일한 식별자

예를 들어

create table Object (
    Id int NOT NULL --primary key, auto-increment
    Name varchar(32)
)
create table SubObject (
    Id int NOT NULL  --primary key and also foreign key to Object
    Description varchar(32)
)

하위 개체에는 외국-key 관계 개체입니다.를 만들 때는 하위 개체 행해야 합니다 처음 객체를 만들고 행하고 사용하는 Id 두 행에

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top