[sql] 두 테이블을 함께 매핑하는 테이블의 이름은 무엇입니까? [닫은]

두 개의 테이블이 있다고 가정 해 봅시다.

Table: Color
Columns: Id, ColorName, ColorCode

Table: Shape
Columns: Id, ShapeName, VertexList

색상을 모양에 매핑하는 테이블을 무엇이라고해야합니까?

Table: ???
Columns: ColorId, ShapeId



답변

컴퓨터 과학에는 캐시 무효화와 이름 지정 문제
, 필 칼튼의 두 가지 어려운 점이 있습니다.

many-to-many관계 를 나타내는 테이블의 이름이 좋으면 관계를 읽고 이해하기가 더 쉽습니다. 때로는 위대한 이름을 찾는 것이 사소한 것이 아니지만 일반적으로 생각하는 데 시간을 할애 할 가치가 있습니다.

예 : ReaderNewspaper.

A는 Newspaper많은이 Readers과는 Reader많이있다Newspapers

관계를 호출 할 수는 NewspaperReader있지만 Subscription테이블 이름 에 대해 더 잘 전달할 수 있습니다.

Subscription나중에 테이블을 객체에 매핑하려는 경우 이름 이 더 관용적입니다.

many-to-many테이블 이름 지정 규칙 은 관계에 관련된 두 테이블의 이름을 연결 한 것입니다. ColourShape귀하의 경우 합리적인 기본값이 될 것입니다. 그게 내가 닉 D 생각했다 내놓았다 : 두 위대한 제안 Style하고 Texture.


답변

ColorShapeMap 또는 Style 또는 Texture어떻습니까 .


답변

답의 절반 정도가 흥미 롭다면 다 대다 관계를 구현하는 테이블에 대한 일반적인 용어를 제공하고 나머지 절반은이 특정 테이블의 이름을 제안합니다.

이 테이블 교차점 테이블을 일반적으로 불렀습니다 .

명명 규칙과 관련하여 대부분의 사람들은 다 대다 관계에서 두 테이블의 합병 인 이름을 지정합니다. 따라서이 경우 ” ColorShape“또는 ” ShapeColor.” 그러나 나는 이것이 인위적이고 어색한 것처럼 보입니다.

Joe Celko는 자신의 저서 “SQL Programming Style”에서 이러한 테이블의 이름을 자연 언어로 추천합니다. 예를 들어, 셰이프에 색상이 지정된 경우 테이블 이름을 지정하십시오 ColoredBy. 그러면 다음과 같이 자연스럽게 읽거나 읽는 다이어그램을 가질 수 있습니다.

Shape <-- ColoredBy --> Color

반대로 색상의 모양을 말할 수 있습니다.

Color <-- Colors --> Shape

그러나 이것은 중간 테이블이 Color복수 명명 규칙과 같은 것으로 보입니다 . 너무 혼란 스럽습니다.

아마도 ColoredBy명명 규칙 을 사용하는 것이 가장 분명합니다 . 패시브 음성을 사용하면 이름 지정 규칙이 더 명확 해집니다.


답변

정보를 제공하는 한 원하는대로 테이블 이름을 지정하십시오.

COLOR_SHAPE_XREF

모델 관점에서 테이블을 조인 / 롤러 리 / 상호 참조 테이블이라고합니다. 나는 _XREF관계를 분명하게하기 위해 마지막 에 사용하는 습관을 유지했습니다 .


답변

이것은 연관 엔티티 이며 종종 자체적으로 중요합니다.

예를 들어, TRAINS와 TIMES 사이의 다 대다 관계는 TIMETABLE을 발생시킵니다.

시간표와 같은 명백한 새로운 실체가 없다면, 두 단어를 함께 실행하여 COLOUR_SHAPE 또는 이와 유사한 것을 부여하는 것이 관례입니다.


답변

매핑 테이블이 일반적으로 호출됩니다.

ColorToShape
ColorToShapeMap


답변

DBA와 함께 조인 테이블 이라고 불렀습니다. .

관계에 명시적인 도메인 특정 이름이없는 한 Colour_Shape는 상당히 일반적입니다.