문제

나의 많은 기업이 사용하는 접두사를 위해 자신의 데이터베이스 테이블이 있습니다.E.g.테이블이 될 것이라는 MS_Order,MS_User,etc.이 좋은 이유로 이것을 하고 있는가?

유일한 이유는 나의 생각할 수 있을 피하기 위해 이름을 충돌이 발생합니다.하지만 그것은 정말 일어나는가?사람들이 다 하나에서 데이터베이스?은 거기에 다른 어떤 이유는?

도움이 되었습니까?

해결책

SQL Server 2005 이상에서 스키마 기능은 모든 종류의 접두사가 필요하지 않습니다. 사용의 좋은 예는 AdventureWorks의 스키마.

일부 이전 버전의 SQL Server에서는 Pseudo 네임 스페이스를 생성하는 접두사가 있는데, 많은 테이블이있는 DBS에 유용 할 수 있습니다.

그 외에는 요점을 실제로 볼 수 없습니다.

다른 팁

개인적으로, 나는 그것에 어떤 가치도 보이지 않습니다. 사실, 모든 것이 MS_로 시작하기 때문에 Intellisense와 같은 기능을위한 범람입니다. :) 마스터도 저도 동의합니다.

거대한 스키마에는 종종 비슷하지만 뚜렷한 목적을 가진 많은 테이블이 있습니다. 따라서, 다양한 "세그먼트 된"명명 규칙.

DARN, 첫 번째 게시물을 얻지 못했습니다 :-)

데이터베이스에 하나의 응용 프로그램 만 포함 된 경우에도 접두사는 애플리케이션의 일부와 같이 그룹화하는 데 유용 할 수 있습니다. 따라서 CUTOMER 정보를 포함하는 테이블은 CUST_로 접두사로 표시 될 수 있으며, 창고 정보가 포함 된 테이블은 Inv_ (인벤토리의 경우)로 접두사로 표시 될 수 있습니다. FINACIAL 정보를 포함하는 것은 FIN_ 등으로 접두사가있을 수 있습니다.

저는 다른 회사가 작성하고 유지 관리하는 응용 프로그램에 대한 기존 데이터베이스가있는 시스템에서 작업했으며 우리는 몇 가지 추가 테이블을 사용하여 많은 양의 동일한 데이터를 사용하는 다른 앱을 추가해야했습니다. 이 경우 앱 특정 접두사가있는 경우 분리에 도움이 될 수 있습니다.

원래 질문에 약간 접선으로 데이터베이스가 접두사를 사용하여 테이블이 보유하고있는 데이터 유형을 나타냅니다. 크기와 컨텐츠 모두에서 정적으로 정적 인 조회 테이블에 대한 접두사가 있고 가변 데이터가 포함 된 테이블의 접두사가 있습니다. 이는 로깅, 처리 된 주문, 고객 거래 등에 추가되었지만 실제로 변경되지 않은 테이블에 대한 하나의 접두사가있는 것으로 차례로 차단 될 수 있으며, 고객 잔액 등과 같은보다 가변 데이터에 대해서는 다른 하나입니다. 링크 테이블에는 자체 접두사가있을 수도 있습니다.

다른 응용 프로그램의 테이블을 동일한 데이터베이스 네임 스페이스에 넣는 것이 합리적이지 않기 때문에 명명 충돌을 본 적이 없습니다. 다른 응용 프로그램에 통합 될 수있는 일종의 재사용 가능한 라이브러리가 있다면 아마도 그 이유 일 수도 있지만 그런 것을 보지 못했습니다.

하지만 이제는 생각하기 때문에 사용자가 매우 적은 수의 데이터베이스 만 만들 수있는 저렴한 웹 호스팅 제공 업체가 있으므로 단일 데이터베이스를 사용하여 여러 가지 다른 응용 프로그램을 실행할 수 있습니다. 이름은 충돌하지 않았습니다 (그리고 그러한 접두사 규칙은 확실히 도움이 될 것입니다).

특정 테이블을 사용하는 여러 응용 프로그램이 정확합니다. 접두사는 이름 충돌을 방지합니다. 또한 백업을 간단하게 백업하고 동일한 데이터베이스에 보관하고 접두사를 변경하면 백업이 완전히 작동합니다. 그 외에도 좋은 연습 일뿐입니다.

접두사는 좋은 방법은 분류하는 sql 개체 관련이 있는 때 응용 프로그램은 여러 앱을 찍어가 동일한 데이터베이스.

또한 앞에 sql 개체 내에서 다르게 같은 응용 프로그램을 용이하게 관리의 보안을 보장합니다.즉모든 개체가 가진 admin_ 이 필요한 보안을 적용하고 나머지는 다른 뭔가가 필요합.

접두사를위한 편리 할 수 있는 인간,도구들과 스크립트가 있습니다.는 경우 상황은 간단한 한,그러나,아마 아무도 그들을 위해 사용다.

여러 응용 프로그램이 하나의 데이터베이스를 공유하는 경우 가장 자주 사용됩니다. 예를 들어, WordPress를 설치하면 "wp_"로 모든 테이블을 접두사합니다. 응용 프로그램이 데이터를 매우 쉽게 공유하기를 원하는 경우에 좋습니다 (예 : 회사의 모든 응용 프로그램의 세션).

그러나이를 달성하는 더 좋은 방법이 있으며, 각 응용 프로그램에는 자체 포함 된 데이터베이스가 있기 때문에 테이블 이름을 정리하지 않습니다.

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