2015-01-23 5 views
0

것 같다. "나는이 뒤에 이유에 대해 궁금합니다.의 장점은 무엇장점"는이 같은 외래 키의 이름에 접미사가

이것은 대단히 의견을 기반으로하지만, 나는 그것을 더 정확하게 컬럼의 내용을 설명 말할 것

+1

0120-13-0375 외부 이름에 대한 명명 규칙 – sergio

+1

컴퓨터 과학에는 하드 무언가가 두 가지 있습니다. 캐시 무효화, 이름 지정 및 개별 단위 울타리 오류 게시. – spencer7593

+1

세계에는 세 종류의 사람들이 있습니다. 셀 수있는 방법을 알고있는 사람과 그렇지 않은 사람 –

답변

2

posts(id, user, title, text) 간단한 이상 posts(id, user_id, title, text)?. 1902010은 사용자가 아닌, 그것은 사용자 ID입니다. user이 같은 잘못된 것입니다 그것을 호출 전화로 titletitle_id.

+0

"1902010은 사용자가 아닙니다."- 그러나 MySQL 데이터베이스와 관련하여 명확하지는 않습니까? –

+0

@EmanuilRusev 반드시 그렇지는 않습니다. '{ "id": 1902010, "name": "ceejayoz"}'행에있는 내용이 'user'와 같은 컬럼에 들어있는 데이터베이스를 보았습니다. – ceejayoz

2

다음과 같은 명명 규칙을 따르면 큰 이점이 있습니다. 이는 잘못된 SQL 문을 "틀리게 보입니다".

("잘못된 코드가 잘못 봐 만들기"Spolsky 조엘의이 블로그 게시물은 SQL을 언급하지 않습니다,하지만 난 당신이 물었다 SQL 명명 규칙에 대한 조엘이 신봉 같은 원칙에 따라 다음 생각합니다.)

http://www.joelonsoftware.com/articles/Wrong.html 규범 가입


외래 키 키 차 -입니다.

FROM user 
JOIN post 
    ON post.user_id = user.id 

:

우리가 기본 키로 id을 사용하는 이름 지정 규칙을 따르고, (외래 키 열 이름의 끝에 _id와) tablename_id를 사용

, 즉 다음과 같습니다 SQL로 연결 이것은 매우 친숙한 패턴입니다. 대리 키는 id이고 외래 키 열은 <referencedtable>_id 또는 때로는 <referencedtable>_<role>_id의 이름을 갖습니다. 이 SQL을 보면

, 우리는 post 테이블에 user_id 열이 user 테이블의 id 컬럼에 대한 외래 키 참조가 기대합니다. 우리가 종교적으로이 스타일 명명 규칙을 따를 때, 그 패턴을 따르지 않는 SQL은 단지 "틀린 것"으로 보입니다. 예를 들어

는 비교 :

FROM somedoohickey 
JOIN gibberish 
    ON troubador = minstrel 

에 :

FROM somedoohickey s 
JOIN gibberish g 
    ON g.id = s.gibberish_id 

동등하게 유효한 SQL 될 수있다. 그러나 두 번째 패턴은 훨씬 더 많은 정보를 독자에게 전달합니다. 우리가 명명 규칙에 익숙해지면, 우리는 "잘못된"것으로 보입니다. 즉, 뭔가 잘못 될 수도 있습니다.

FROM somedoohickey s 
JOIN gibberish g 
    ON g.id = s.undecipherable_id 

뭔가 제대로 보이지 않습니다 :

는 것을 비교. 또는 심지어

FROM somedoohickey s 
JOIN gibberish g 
    ON g.id = s.gibberish 

다시 말해서, 뭔가 이상하게 보입니다.

1

모든 명명 규칙의 가장 큰 장점은 손쉬운 학습입니다.나중에 따라 오는 관리자는 데이터가 무엇을 의미 하는지를 알아야 할 것이며, 그 중 일부는 잠시 깨닫지 않고 잠정적으로 진행될 것입니다. "Id"접미사가 붙은 외래 키를 갖는 것은 미래의 조사자가 어떤 칼럼이 외래 키인지 아닌지를 한 눈에 알 수있게 도와줍니다.

일부 상점에서는 밑줄 대신 접미사를 사용하여 접미사를 줄기에서 돋보이게 만듭니다.

일부 상점에는 기본 키 열 이름에 ID 접미사가 포함됩니다. 메타 데이터 쿼리를 통해 외래 키가 참조하는 모든 기본 키를 찾을 수 있다는 이점이 있습니다. 명명 된 도메인을 현명하게 사용하면 동일한 작업을 수행 할 수 있습니다.

일부 상점에서는 고아 외래 키를 방지하기위한 참조 제약 조건을 포함하여 모든 또는 거의 모든 외래 키가 데이터 정의에서 이와 같이 선언됩니다. 이것은 조사자를 도울뿐만 아니라 실질적인 결과를 낳습니다.

그러나 시스템을 더 배우고 더 쉽게 액세스 할 수있게 만드는 가장 중요한 점은 일관성입니다. 컨벤션이 일관되게 준수되지 않는다면 컨벤션이 전혀 없다는 것이 더 혼란 스러울 수 있습니다.