VARCHAR(50)
열이 Country
이라고하는 테이블이 여러 개 있다고 가정 해보십시오. 수백만 번 반복되는 다른 국가 이름이 약간 있습니다. 여기에 할 일은 dbo.Country(CountryID, CountryName)
이라는 테이블을 만들고 모든 테이블을 보유하는 것입니다. CountryID
외래 키 참조.VARCHAR 열의 자동 정규화?
문제는 해당 열을 사용하여 작업을 수행 할 때마다 dbo.Country
과 관련된 모든 쿼리에 참여해야한다는 것입니다.
그러나 모든 조인은 동일한 패턴을 따르는 것처럼 보이므로 내 질문은 SQL Server에서 자동으로 수행 할 수 있습니까? 예를 들어 VARCHAR
처럼 보이지만 실제로 외래 키가있는 CountryID
으로 저장되는 일부 테이블에 CountryName
이라는 열을 지정하면 필요할 때마다 SQL Server에서 암시 적으로 JOIN을 추가 할 수 있습니다.
SQL Server 또는 다른 SQL 데이터베이스에 이러한 기능이 있습니까?
_ "문제는 우리가 dbo.Country를 사용하여 쿼리를 할 때마다 해당 열을 사용하여 작업을해야한다는 것입니다."_ 오해. 국가 이름을 표시하고 싶을 때마다 가입해야합니다. 다른 어떤 목적을 위해 가입 할 필요가 없습니다. 국가 ID (ISO 3116-1을 사용하고 많은 고통을 덜어주십시오)는 이름이 데이터베이스에있는 것처럼 해당 국가를 나타냅니다. 그것은 관계의 정의입니다. – Ben
@Ben 질문을 너무 길게 만들지 않도록 정교하게 설명하지는 않았지만, 내가 가진 상황은 다른 소스에서 가져온 데이터에이 데이터를 항상 연결하고 때로는 문자열 값을 약간 조작해야한다는 것입니다. 그래서 내가 조인을해야 할 때입니다. – Morad