1

제목으로 죄송합니다.테이블 관계를 뛰어 넘기 위해 "지름길"참조가 있으면 괜찮습니까?

다음과 같은 관계가 있습니다. 상자는 냉장고에 속한 랙에 속한 슬롯에 속합니다. 다른 방법으로 보면, 냉장고에는 상자가 하나있는 슬롯이 많은 랙이 많이 있습니다.

일부 작업의 경우 상자가 냉장고 안에있는 곳을 알 필요가 없습니다. 상자에서 냉장고까지 지름길이 있다면 검색어를 간단하게 만들 수 있습니다.

왜 그렇게 나쁜가요, 왜 박스 테이블에 냉장고에 외래 키가 있습니까?

답변

2

관계가 업데이트되는 빈도에 따라 달라질 수 있습니다. 관계가 자주 변경되는 경우 여러 위치에서 관계를 업데이트해야하는 오버 헤드가 있습니다. 이것은 또한 상황을 약간 더 어렵게 만들 수 있습니다. 왜냐하면 하나를 변경하면 모든 발생이 업데이트되도록해야하기 때문입니다.

그러나 값이 자주 변경되지 않으면 검색어가 더 빨리 표시 될 수있는 것으로 보입니다.

This 데이터베이스 정규화의 좋은 예이며 사용하는 예제는 사용자의 것과 매우 비슷합니다. 정상화에 관심이 있다면 Wikipedia에 관한 기사가 정말 좋습니다.

+1

제약 조건의 참조 무결성 적용을 지원하는 데이터베이스를 사용하는 경우 데이터베이스는 비정규 화 테이블에서 외부 부모 키를 업데이트하는 것을 잊어 버리는 프로그래밍 코드를 피할 수 있도록 도와줍니다. –

+0

예 동의합니다. 질문에 사용 된 데이터베이스 유형을 보지 못했지만 추가 된 항목이 하나의 형식이나 다른 형식으로 필요하기 때문에 포함되었습니다. –

+0

답변과 의견을 보내 주셔서 감사합니다. 나는 MySQL을 사용하고 있다고 언급해야한다. – kaklon

1

두 개의 서로 다른 장소에 냉장고 보관함을 기록하면 모순이 발생할 가능성이 있습니다. 따라서 중복 데이터가 일관성을 유지하는지 또는 데이터가 잘못되었을 수 있음을 확인하기 위해 추가 제약 조건 로직을 만들어야합니다.