2011-03-09 4 views
4

저는 SQL Server 2008 데이터베이스를 사용하는 C# 프로젝트를 만들고 있습니다. 데이터베이스에는 50 개 이상의 테이블과 이름 만있는 테이블이 있으며 테이블의 목적과 컬럼은 즉시 명확하지 않습니다. 미래의 팀 구성원이 열과 테이블의 기능을 이해할 수 있도록 문서 형식을 만들고 싶습니다.SQL Server 데이터베이스에서 테이블과 열의 의미를 문서화하는 좋은 방법은 무엇입니까?

저는 SQL Server에 상응하는 C# "코드 주석"또는 "XML 문서"를 찾고 있습니다. 새로운 사람이 데이터베이스 테이블이나 열을 이해할 수있는 방법을 찾고 있습니다.

어떤 옵션이 있습니까?

답변

2

Extended properties? 코드 또는 GUI에서 설정할 수 있습니다

또한 Red Gate SQL Doc을 사용하여 스키마를 게시하고 확장 속성이 여기 설명에 나타납니다. 굉장히 유용하다.

0

문서에 모든 확장 속성을 표시하는 것은 그 자체가 설정 한 전체 기술이다. 올바른 네이밍 방법론은 일관성과 마찬가지로 좋기 때문에 데이터베이스와 관련하여 스타일에 영향을주지 않습니다.

SQL 다이어그램 또는 뭔가를 사용하는 것 외에 가장 좋은 것은 테이블과 열을 설명하는 좋은 문서입니다. 객체/테이블/컬럼 간의 전반적인 구조와 관계를 정의하십시오. 개념이 더 복잡하다면 설명을 해주십시오.하지만 누군가가 '이 열은 무엇을합니까?'라고 쉽게 말할 수있게하십시오. 이해하기 위해 단락 또는 두 개를 읽지 않고도 신속하게 답을 찾을 수 있습니다.

+1

동의를하지만, 나는 좋은 문서의 값이 가까이 "를 넣어하다고 생각합니다 항목이 문서화되고 있습니다 ". 별도의 Word 문서가 구식으로 작성되어 참조하기가 어려워졌습니다. – Mike

+1

나는 당신이 의미하는 것을 이해합니다. 그러나 특정 수준의 복잡성에서는 외부 문서를 참조하는 것이 개발 프로세스를 단순화한다고 생각합니다. 그러나 그것은 또한 내 개인적인 선호도입니다. – Thyamine

0

이 작업에 대한 별도의 도구를 조사하고 싶으십니까? - 그렇다면

이 두 가지를 살펴 있습니다

모두 무료로하지 않습니다 (자신의 Sample AdventureWorks HTML doc 온라인 검색) - 그들은 약간의 돈을 비용 할 HTML, PDF, CHM 형식의 우수한 품질의 문서를 만들 수 있습니다. 또한 데이터베이스의 모든 작은 정보, 즉 개체, 제약 조건 및 열의 기본값 간의 모든 관계를 가져오고 은 많이입니다.

심각한 투자를한다면 초기 투자 가치가 있습니다.

+0

조언을 주셔서 감사하지만 단순히 데이터베이스 구조에 대한 메타 데이터를 캡처하고 싶지는 않습니다. 열과 테이블의 의미와 목적에 대한 정보로 스키마에 주석을 달 수 있기를 원합니다. – Mike

+2

SQL Doc을 사용하면 미리보기 화면에서 스키마 구성 요소에 주석을 달 수 있습니다. 스키마를 설명하는 데 지원되는 방법 인 MS_Description 확장 속성을 사용하기 만합니다. –

4

간단한 테이블 테이블 열에 접근 방식은 SQL Server Management Studio 테이블 디자이너를 사용하는 것입니다. 각 열에 대한 설명 필드를 채 웁니다.

enter image description here

그런 다음 쿼리가 sys.extended_properties 테이블에 합류와 함께 테이블 정보를 볼 수 있습니다

-- list table columns 
SELECT OBJECT_NAME(c.OBJECT_ID) [TableName], c.name [ColumnName], t.name [DataType], x.Value [Description], c.max_length [Length], c.Precision ,c.Scale 
FROM sys.columns AS c 
JOIN sys.types AS t ON c.user_type_id=t.user_type_id 
LEFT JOIN sys.extended_properties x on x.major_id = c.object_id and x.minor_id = c.column_id 
WHERE OBJECT_NAME(c.OBJECT_ID) = 'Employees' 
ORDER BY c.OBJECT_ID, c.column_id; 
관련 문제