MySQL에 대한 명명 규칙이 있습니까?
내가하는 방법은 다음과 같습니다.
- 표 이름 (예를 들어, 단수의 소문자, 개별 단어 사용의 밑줄이고,이다
foo
,foo_bar
등 - 나는 일반적으로 (항상 그런 것은 아니지만) 자동 증분 PK를 갖습니다. : 나는 다음과 같은 규칙을 사용
tablename_id
(예를 들어foo_id
,foo_bar_id
등). - 테이블에 외래 키 인 열이 포함되어 있으면 테이블의 출처가 무엇이든 해당 키의 열 이름을 복사합니다. 예를 들어 테이블
foo_bar
에 FK가 있습니다foo_id
(여기서foo_id
PK는foo
). - 참조 무결성을 강화하기 위해 FK를 정의 할 때 다음을 사용합니다
tablename_fk_columnname
(예 : 추가 예 3foo_bar_foo_id
). 이것은 테이블 이름 / 열 이름 조합이므로 데이터베이스 내에서 고유해야합니다. - PK, FK, 나머지 열을 알파벳순으로 정렬합니다.
더 나은 표준 방법이 있습니까?
나는 가장 먼저 말하고 싶습니다 : 일관성이 있어야합니다.
나는 당신이 당신의 질문에 요약 한 규칙으로 거의 거기에 있다고 생각합니다. 그러나 몇 가지 의견 :
포인트 1과 2는 좋았습니다.
포인트 3-슬프게도 이것이 항상 가능한 것은 아닙니다. foo_bar
열이 foo_id
있고 테이블 열 another_foo_id
을 참조 하는 단일 테이블에 어떻게 대처할 것인지 생각해보십시오 . 이것을 다루는 방법을 고려할 수도 있습니다. 이것은 약간의 코너 케이스입니다!foo
foo_id
포인트 4-포인트 3과 유사합니다. 외래 키 이름 끝에 숫자를 도입하여 둘 이상의 참조 열을 가질 수 있습니다.
포인트 5-나는 이것을 피할 것입니다. 그것은 당신에게 거의 제공하지 않으며 나중에 테이블에서 열을 추가하거나 제거하려고 할 때 두통이 될 것입니다.
다른 요점은 다음과 같습니다.
인덱스 명명 규칙
인덱스 이름 지정 규칙을 도입 할 수도 있습니다. 이는 수행하려는 데이터베이스 메타 데이터 작업에 큰 도움이됩니다. 예를 들어 인덱스를 호출 foo_bar_idx1
하거나 foo_idx1
전적으로 자신에게 달려 있지만 고려할 가치가 있습니다.
단수 대 복수 열 이름
테이블 이름뿐만 아니라 열 이름에서 복수 대 단일의 가시적 인 문제를 해결하는 것이 좋습니다. 이 주제는 종종 DB 커뮤니티에서 큰 논쟁 을 일으 킵니다 . 나는 테이블 이름과 열 모두에 대해 단수 형태를 고수 할 것입니다. 그곳에. 내가 말했어
여기서 가장 중요한 것은 물론 일관성입니다!
일관성은 모든 명명 표준의 핵심입니다. 논리적이고 일관성있는 한 99 %가 있습니다.
표준 자체는 개인 취향이 매우 뛰어나므로 표준이 마음에 들면 표준으로 실행하십시오.
귀하의 질문에 대답하기 위해-아니오, MySQL에는 선호하는 명명 규칙 / 표준이 없으므로 자신을 굴리는 것이 좋습니다 (그리고 논리적으로 보입니다).
MySQL에는 다소 엄격한 규칙에 대한 간단한 설명이 있습니다.
https://dev.mysql.com/doc/internals/en/coding-style.html
Simon Holywell의 MySQL에 대한 가장 일반적인 코딩 스타일 :
이 질문을 참조하십시오 : SQL에 대해 게시 된 코딩 스타일 지침이 있습니까?
고맙게도 PHP 개발자는 내가 알고있는 일부 개발 커뮤니티와 같이 "낙타 사건의 큰 부분"이 아닙니다.
컨벤션은 괜찮습니다.
그들이 a) 단순하고 b) 일관성있는 한 문제가 없습니다. :)
추신 : 개인적으로, 나는 5) 과잉이라고 생각합니다 ...
참고 URL : https://stackoverflow.com/questions/7899200/is-there-a-naming-convention-for-mysql
'IT story' 카테고리의 다른 글
RegisterResGeneratingTask는 더 이상 사용되지 않습니다. registerGeneratedFolders (FileCollection)를 사용하십시오. (0) | 2020.06.16 |
---|---|
Rust의 정확한 자동 역 참조 규칙은 무엇입니까? (0) | 2020.06.16 |
Cache-Control 속성이 요청 헤더 (클라이언트에서 서버로)로 전송되는 이유는 무엇입니까? (0) | 2020.06.16 |
Git diff-이름 만 사용하고 해당 목록을 복사 (0) | 2020.06.16 |
일상적인 기계는 어떻게 프로그래밍됩니까? (0) | 2020.06.16 |