programing

SQL 조인 테이블 명명 규칙

coolbiz 2023. 7. 9. 21:47
반응형

SQL 조인 테이블 명명 규칙

두 개의 테이블이 있습니다.사용자와 역할, 그리고 저는 이들을 함께 연결하는 테이블을 가지고 있습니다.조인 테이블에 있는 것은 두 테이블을 연결하는 ID뿐입니다.

이 테이블을 뭐라고 불러야 하나요?이것에 대한 좋은 명명 규칙을 본 적이 없습니다.

이전에 본 관례:

  • 사용자 도구 역할 가입
  • 사용자-역할 링크
  • 사용자 도구 구성원 자격
  • 사용자 역할

예:

Users:  
Id  
Name

Roles:  
Id  
Name  

TableThatJoinsTheTwo:  
Id  
UserId  
RoleId  

매핑 테이블에는 각 사용자가 속한 모든 역할이 저장되어 있는 것 같습니다.이 맞다면 저는 그 을 "이이맞부것입다니를을블테것이다면▁the다것니▁table입"라고 부를 입니다.UserRoles.

은 정확하게 (▁than▁tableim▁the다▁thisizes▁of▁(▁correctly니▁intent▁▁the복합▁(수화oo)가 아니라 표의 의도를 복수화한 것입니다.UsersRoles이상하게 들리네요

용사자테호출다니합을이블라고 부릅니다.UserRole 조인 테이블 및합테블이UserRoles.

pk 그그는고렇건▁pk, pk는.Id조인 테이블에는 필요하지 않습니다.만드는 것이 더 낫습니다.UserId그리고.RoleId just uk)을 확인할 수 있도록 pk 또는 uk uk) 키를 함께 사용합니다.User-Role관계들.

저는 단순히 사용자 역할을 제안하고 싶습니다. 그것이 바로 그것이기 때문입니다.

  • 테이블 이름은 항상 단수여야 합니다. 그래야 나중에 "그런가요?"처럼 될 필요가 없습니다.User또는UsersS 등으로 끝나는 것들은 어떻습니까?" (프로젝트를 시작한 지 얼마 되지 않았다면 지금 변경했을 것입니다.)
  • 다음과 .User,Role 테이블: "xref 이블"UserRole.
  • 가장 중요한 테이블, 또는 이전에 존재했던 테이블이 먼저 시작됩니다.이는 '역할' 테이블이 사용자 권한 항목 외에 실제로 사용되지 않는 경우에 특히 해당됩니다.그렇게UserRole보다 훨씬 더 말이 됩니다.RoleUser.
  • 이런 것들을 본 적이 있습니다.User_X_Role또는UserXRole이 여분의 장황함을 , 이▁as면좋다,▁the.

데이터베이스는 기업을 나타냅니다. 그렇죠?그렇다면 그 기업의 사람들은 그 관계를 무엇이라고 부를까요?

여기 제가 아는 몇 가지가 있습니다.

  • employee.line manager

  • studentcourse 등록

  • womanman

의심스러운 경우, 기업 내 도메인 전문가에게 문의하십시오.

링크 테이블을 다음과 같이 부릅니다.

Remove_The_Surrogate_Primary_Key_From_The_Link_Table_Unless_You_Can_Prove_That_You_Really_Need_One

우리는 같은 구조를 가지고 있으며 링크 테이블을 사용자 역할이라고 부릅니다.

다음은 제 직장의 관례입니다.

UsersXRoles

이것에, .User 표 리고식탁입니다.RoleUsersRoles다대다 관계는 하나의 사용자에게 많은 역할을 연결하거나 실제로 많은 사용자를 하나의 역할에 연결하는 것으로 간주할 수 있기 때문에 좋다고 생각합니다(따라서 둘 다 복수인 것이 타당합니다).또한 "사용자의 역할"로 읽을 수 있으며, 이는 관계에 대한 일반적인 사고 방식이 "사용자가 가지고 있는 역할"이라는 것을 나타냅니다.

다음과 같은 저는항상다것있가었다니습지고을같은음.rel_user_roles또는relUserRoles어떤 테이블이 먼저 표시되는지는 일반적으로 데이터 모델의 위치에 따라 달라집니다.

2가지 접근 방식:

  1. 여기서 테이블 간의 관계는 하나뿐입니다. 조인 테이블은 RoleUser 또는 Role_User일 수 있습니다.이름 순서인 역할 1, 사용자를 알파벳 순으로 입력하면 기억하려고 할 필요가 없습니다!

  2. 여기서 테이블 간에 여러 관계(: 관계 이름)를 가질 수 있습니다. 예를 들어 사용자에 대한 일반 역할 목록이 있을 수 있고 사용자에 대한 잠재적 역할 또는 과거 역할 목록이 있을 수 있습니다.두 테이블은 같지만 관계는 다릅니다.그러면 RoleUser_Current 및 RoleUser_Past가 있을 수 있습니다.

바로 볼 수 있는 컨벤션이 있습니다.

User
Role
User2Role

RoleUser 순서 저알벳순사서용니다합를파는▁(다니사용)를 사용합니다.Role 앞에 User이렇게 하면 쿼리를 작성할 때 조인 테이블의 이름을 지정하는 데 사용한 순서를 기억할 필요가 없습니다.

나는 또한 다른 사람이 언급한 것처럼 단수를 사용합니다 - 당신은 기억하려고 노력할 필요가 없습니다!나한테 효과가 있어요.

우리는 항상 두 테이블의 이름 뒤에 '링크'라는 단어를 사용해 왔습니다.따라서 예제에서 테이블 이름은 'UsersRolesLinks'입니다.

Microsoft에서 페이지를 훔쳐서 UsersInRoles라고 부를 수 있습니다.

저는 모든 것을 단순하게 유지하려고 노력하지만, 또한 다음과 같이 서술하려고 노력합니다.

user_role_cisco

연결된 테이블의 이름을 사용하여 조인 테이블의 이름을 지정하는 것이 좋습니다.예를 들어 두 개의 테이블 "products"와 "product_tags", 결합 테이블의 이름은 "product_product_tags"입니다.가장 큰 장점은 이 이름에서 어떤 테이블이 함께 결합되는지 즉시 말할 수 있다는 것입니다.DB에 50개 이상의 테이블이 있는 경우 이러한 테이블을 사용하는 것이 좋습니다. 따라서 테이블을 결합하는 것에 대해 더 이상 생각할 필요가 없습니다.

실제로 테이블 별칭을 사용하고 AS 선택기와 별도로 이름이 같은 열을 선택합니다.

예.SELECT user.id AS user_id

언급URL : https://stackoverflow.com/questions/1764483/sql-join-table-naming-convention

반응형