데이터베이스 테이블 정의의 열 순서에 대한 표준/규칙이 있습니까?

StackOverflow https://stackoverflow.com/questions/833329

문제

데이터베이스 테이블 정의에서 열 순서를 지정하는 방법에 대한 표준/관례가 있습니까? 그렇다면 해당 표준의 동기는 무엇입니까?(장점/단점)

예를 들어 기본 키가 첫 번째 열이어야 합니까?외래 키는 기본 키 바로 뒤에 배치해야 합니까, 아니면 테이블의 맨 오른쪽에 배치해야 합니까?

서로 다른 DBMS에 대한 규칙 간에 차이가 있는 경우 이 경우 DBMS는 Microsoft SQL Server 2005입니다.

고마워요 /에릭

도움이 되었습니까?

해결책

나는 어떤 표준도 알지 못하지만 우리가 컬럼을 구성하는 방식은 다음과 같습니다.

  1. 기본 키
  2. 모든 외래 키
  3. 데이터

우리의 크기가 큰 설명과 같은 데이터 열은 끝에 배치됩니다.오른쪽으로 스크롤하지 않고도 쿼리 분석기에서 최대한 많은 데이터를 더 쉽게 볼 수 있습니다.

다른 팁

나는 항상 다음과 같은 테이블을 구조화합니다.

  1. 기본 키 (S)
  2. '추적'열 (DateModified, ModifiedBy 등)
  3. 모든 외국 열쇠
  4. 데이터

정해진 규칙에 대해서는 잘 모르겠지만 항상 ID/기본 키 열을 테이블의 첫 번째 열로 넣습니다. PK를 보는 것이 더 명확하기 때문이라고 생각합니다. FK 필드로도 따르지만 실제 표준이 없으면 데이터 타입으로 할 수 있습니까?

또한 이것은 모범 사례가 아니라 개인적인 선택 일뿐입니다.

내가 아는 것은 없다. 어쨌든 선택하는 동안 항상 열을 다시 주문할 수 있으므로 열을 적절하게 주문하여 일부 데이터베이스에서 수행 할 수있는 진정으로 모호한 최적화가 없다면 중요하지 않습니다.

내가 알고있는 공식적인 표준은 없지만 일반적인 관행은 기본 키를 먼저 배치 한 다음 다른 필드를 기능별로 그룹화하는 것입니다. 따라서 "사람"테이블에서는 사람의 주소 데이터가 포함 된 필드를 그룹화합니다. 대부분의 사람들은 테이블 정의 외부에 FK, 인덱스 및 기타 제약을 추가합니다.

mm .. 제가 아는 것처럼 제한이 없다. 그것은 명확성의 문제입니다.

위의 대부분의 게시물에 동의합니다. 기본 키는 최소한 (적어도)입니다. 나머지는 개인적인 취향입니다. 표준이 있다면 해당 표준을 유지하십시오.

나는 칼럼을 논리적으로 공정하게 유지하는 것을 선호합니다. 때로는 완전히 정규화 된 데이터 구조가 적절하지 않으므로 동일한 테이블에 "미성년자"가 저장되어 있습니다 (즉, 널을 제거하지 않음). 예를 들어 주소 필드 또는 다른 전화기, 휴대 전화, 작업 전화 열이 함께 배치됩니다.

내가 줄 수있는 가장 놀라운 예는하지 않는 방법입니다. 개발자가 스키마를 자동화하고 열이 알파벳 순서로 생성된다면 (그리고 PK조차도 테이블 구조의 중간에 숨겨져 있음) 가장 성가신 것입니다.

부두에 따라 :-

Primary key(s) 
'Tracking' columns (DateModified, ModifiedBy and such) 
Any foreign keys 
Data 

을 더한

Fixed width 'not null' columns
Fixed width 'nullable' columns
Variable Width columns VARCHAR NVARCHAR etc.
CLOBS
BLOBS 

테이블 하단에서 길이가 다를 수있는 열을 고착하면 약간의 성능이 증가합니다.

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