답변:
요약 : 작은 객체의 저장소 최적화 , SERVER-863 . 바보지만 사실입니다.
관계 데이터베이스에 적용되는 규칙과 거의 동일한 규칙이 여기에 적용되어야한다고 생각합니다. 그리고 수십 년이 지난 후에도 RDBMS 테이블을 단수 또는 복수로 명명해야하는지에 대한 합의는 여전히 없습니다
MongoDB는 JavaScript를 사용하므로 camelCase의 JS 이름 지정 규칙을 사용하십시오.
MongoDB 공식 문서에는 밑줄을 사용할 수 있다고 언급되어 있으며 내장 식별자도 지정되어 있습니다 _id
(그러나 이것은 _id
개인용, 내부 용, 절대로 표시되거나 편집되지 않음 을 나타냅니다) .
_id
에는 밑줄이 접두사로 붙여져 공통의 JavaScript 규칙을 따르며 이는 키가 내부 / 개인 키임을 의미합니다. 다시 말해, _id
컬렉션의 데이터를 보는 모든 사람에게 편집 또는 제시하려는 의도는 없습니다.
데이터 베이스
MongoDB는 좋은 예를 말합니다.
사용할 데이터베이스를 선택하려면 mongo 쉘에서 다음 예제와 같이 use <db> 문을 발행하십시오.
myDB
사용 myNewDB 사용
https://docs.mongodb.com/manual/core/databases-and-collections/#databases의 콘텐츠
컬렉션
소문자 이름 : 대소 문자 구분 문제를 피하고 MongoDB 모음 이름은 대소 문자를 구분합니다.
복수형 : 복수의 대상으로 된 콜렉션을 레이블링하는 것이 더 분명합니다 (예 : "파일"이 아닌 "파일").
> 단어 구분 기호 없음 : 다른 사람이 잘못 단어를 구분하는 문제 (사용자 이름 <-> user_name, first_name <->
이름)를 피하십시오. 이것은
주변 의 몇몇 사람들에 의한 토론에 대한 것이지만, 주장이 컬렉션 이름과 분리되어 있다고 주장한다면 반드시 그렇게 생각해서는 안됩니다.;)
밑줄이나
낙타 를 추가하여 컬렉션 이름 의 가독성을 향상시키는 경우 name이 (가) 너무 길거나
컬렉션
분류 의 표준 인 기간을 적절하게 사용해야 합니다 .더 자세한 컬렉션을위한 점 표기법 : 컬렉션이 어떻게 관련되어 있는지에 대한 정보를 제공합니다. 예를 들어, 스키마를 디자인 한 사람들이 제대로 작업했다면 "users"를 삭제 한 경우 "users.pagevisits"를 삭제할 수 있다는 것을 합리적으로 확신 할 수 있습니다.
http://www.tutespace.com/2016/03/schema-design-and-naming-conventions-in.html의 내용
컬렉션의 경우 공식 MongoDB 설명서를 찾을 때까지 이러한 제안 패턴을 따르고 있습니다.
이에 대한 규칙이 지정되지 않더라도 일대일 관계에 대해 수동 참조 는 Mongo 문서에서 참조 된 콜렉션의 이름을 일관되게 지정합니다. 이름은 항상 구조를 따릅니다 <document>_id
.
예를 들어 dogs
컬렉션에서 문서는 다음과 같은 외부 문서에 대한 수동 참조를 갖습니다.
{
name: 'fido',
owner_id: '5358e4249611f4a65e3068ab',
race_id: '5358ee549611f4a65e3068ac',
colour: 'yellow'
...
}
이것은 _id
모든 문서의 식별자를 명명하는 Mongo 규칙을 따릅니다 .
owner_id
수집을위한 명명 규칙
컬렉션 이름을 지정하기 위해 몇 가지 예방 조치를 취해야합니다.
데이터베이스에 사용할 수있는 다양한 드라이버가 컬렉션 이름에서 "$"를 지원하지 않으므로 컬렉션 이름에 "$"문자를 포함하지 않는 것이 좋습니다.
데이터베이스 이름을 만들 때 명심해야 할 사항은 다음과 같습니다.
자세한 내용은. 아래 링크를 확인하십시오 : http://www.tutespace.com/2016/03/schema-design-and-naming-conventions-in.html
나는 그것이 개인적인 취향이라고 생각합니다. 내가 선호하는 것은 SQL Server와 함께 .NET에서 NHibernate를 사용하는 것이므로 다른 사람들이 사용하는 것과 다를 수 있습니다.
솔직히 말해서 프로젝트에 일관된 한 너무 중요하지 않습니다. 그냥 일하고 세부 사항을 땀 흘리지 마십시오 : P
SERVER-863 을 얻을 때까지 이 필드 이름을 가능한 짧게 유지 특히 레코드가 많은 경우에 좋습니다.
사용 사례에 따라 필드 이름이 스토리지에 큰 영향을 줄 수 있습니다. 캔 트는 이것이 모든 사용자에게 긍정적 인 영향을 미치기 때문에 이것이 왜 MongoDb에 우선 순위가 높지 않은지 이해합니다. 다른 것이 없다면 대역폭과 스토리지 비용에 대해 두 번 생각하지 않고 필드 이름을 더 잘 설명 할 수 있습니다.
제발 투표 .