2

내 상사가 Person 테이블을 성 및 Forename 테이블로 분할 한 다음 관계가있는 Person 테이블에 연결하려고합니다. 그 목적은 기본적으로 데이터 중복성을 없애기 위해서입니다. 구체적인 제안입니까? forename과 성을위한 분리되는 테이블이있는 것이 좋 ???분리 된 성 및 이름 테이블

+0

아니요 이름과성에 별도의 테이블을 만들지 않는 것 같습니다. 왜 두 개의 열로 분리하지 않을까요? – Roopendra

+0

데이터베이스는 성능을 저하시키는 정도로 정규화 될 수 있습니다. 데이터베이스 정규화는 애플리케이션 요구 사항에 맞아야합니다. 나는 왜 당신이이 일을하는지에 대한 그의 추론을 요구할 것을 제안한다. 특정 응용 프로그램 설계에 대한 타당한 이유가있을 수 있습니다. – amaster

답변

2

아니요. 좋은 RDBMS가 아닙니다. 각 사람이 성 (姓)과 성 (姓)이 각각 하나 뿐인 경우 (가장 항상 그렇듯이) 해당 필드를 기존 테이블에 추가하고 "이름"필드를 제거해야합니다.

+0

1 개 이상이 성을 공유 할 수 있습니다.) –

+0

@SecretSquirrel 그냥 그 다람쥐 차단기 중 하나를 새 모이통에 올려 놓고 있습니다. –

+0

@Digital_Chris 하하 ... –

2

귀하의 보스는 뮤펫입니다. 사용자의 이름에 대해 별도의 테이블에 조인하고 쿼리해야하는 번거로운 성능 저하로 인해 "데이터 중복성"의 이점이 신속하게 상쇄되고 인계되어 응용 프로그램 복잡성이 증가하고 개발 시간이 단축됩니다.

1

그것은 의존 :

Person 테이블이 아닌 경우 정말 거대한 그때 정말 잔인한입니다.

그러나이 테이블이 엄청나게 커지면 파티션으로 2 테이블로 분할하여 이해할 수 있습니다.

이 새로운 디자인에서 의 생각을 다시 할 수 있습니다. 조인과 관련하여 선택 쿼리에 시간이 더 많이 걸리므로 데이터를 저장할 때까지 더 많은 시간이 소요됩니다. 다수의 테이블/인덱스가 필요하며, 조인 등으로 인해 데이터를 검색하는 것이 약간 더 복잡합니다.