다른 명명 규칙에 대한 토론이 있지만 모든 일반 지침 이었지만 다른 특정 사례에 대해서는 좋은 연습에 대한 조언을 구하는 것이 좋습니다. 그러나 내 사건을 직접 다루는 또 다른 질문이 있으면 그것을 링크하십시오.이 질문을 기꺼이 삭제할 것입니다.열 이름 지정 조언
모델, 유닛, 브랜드, 제조업체 등의 테이블이 포함 된 전자 장치를 모델링하기위한 데이터베이스가 있습니다. 해당 엔터티의 인스턴스의 실제 텍스트 이름을 나타내는 항목을 무엇이라고 부를지 궁금합니다. 브랜드의 경우 "Canon"또는 "HP"와 같습니다. 분명히, 저는 처음에 행한 "이름"이라는 열을 단순히 호출하는 관례를 채택 할 수있었습니다. 그러나 다음 선택하는 동안, 당신은 "이름이"선택된 열에서 고유하지 않기 때문에 열을 얻을 수있는 테이블 이름을 참조하도록 강요 : 괜찮습니다,하지만 난 MobilePhoneFormFactor 테이블에 도착했고
SELECT Model.name, Brand.name, FROM Model, Brand
Year 테이블. 특정 연도의 누적 데이터를 저장하는 후자. 나는이 테이블과 같은 규칙을 사용하여 자신을 강제로, 내가 얻을 :
SELECT Model.name, Brand.name, Year.name, MobilePhoneFormFactor.name FROM Model, Brand, MobilePhoneFormFactor, Year
조금 이상한은 "Year.name"로 대신 단지 년 가리키는 것으로 보인다 "해." 이 사건을 예외로 만들 수는 있지만, 방금 전에 저지른 명명 규칙을 이미 깨고 있습니다. 그래서 나는이 다른 명명 규칙을 고려 : 여기
SELECT model, brand, formFactor, year FROM Model, Brand, MobilePhoneFormFactor, Year
브랜드 테이블 브랜드의 텍스트 이름 인 "브랜드"열이, 모델 테이블이의 텍스트 이름 인 "모델"열이있다 model ... 등등.이 select 문에서 볼 수 있듯이이 접근법을 사용하면 대부분의 경우 열의 테이블 이름 접두사를 편리하게 삭제할 수 있습니다 (테이블 이름을 유지하면 다소 ""이됩니다).
하지만 각 테이블에 대해 설명 필드를 갖고 싶다면 어떻게해야합니까? 명백한 구현은 Brand.desc, Year.desc입니다. 이름에 대한 원래의 방식과 같습니다. 따라서 일부 상황에서는 조금 이상하지만 Brand.name, Year.name 체계로 돌아가는 것이 가장 안전하고 일관성이 있다고 생각합니다.
세 번째 옵션은 "brandName, modelName"등의 열 이름을 지정하는 것이지만 단순히 "name"을 사용하고 "Brand.name, Model.name"이 포함 된 쿼리에서 항상 테이블 이름을 참조 할 수도 있습니다. 케이스.
제 생각에는 무엇이 가장 좋을까요? 나는 데이터베이스 베테랑이 아니므로 길 아래로 어떤 것들이 나를 뒤돌아 보게 될지 궁금해한다. "Brand.name, Year.name으로 간다면 훨씬 더 직관적이었을 것이다." 예.
참고 : 끝내기 위해 관계없이 텍스트 이름 열 (자연어 키)이 unqiue 제약 조건을 가진 대체 키로 사용됩니다. 기본 키에 IDENTITY 열을 사용하고 있습니다.
"BrandName", "ModelName"등 ... 다음 연도를 1 년으로 지정할 수 있습니다. – DevinB
원래이 질문에 대한 답변을했지만 문제가 많아서 삭제했습니다. 나는 당신과 다른 사람이 그것을 언급했기 때문에 그것을 거기에 다시 던졌습니다. – JoeCool
나는 Year 테이블을 이해하지 못한다. 그 테이블에는 더 좋은 이름이 있어야합니다. – jmucchiello