프레젠테이션의 내용 : http://docs.google.com/present/view?id=ddqht6x_1559tbtcgg Slide 6. 발표자의 snippets_tags 테이블에 기본 키가 있습니다. 이유는 무엇입니까? 공간을 낭비하지 않는 것 아닌가요? 나는 보통 다른 두 개의 cols를 사용합니다. 기본 키를 신경 쓰지 않아도됩니다.기본 키가없는 다수 Many
0
A
답변
3
예, ID 열은 필요하지 않으며 PK는 다른 두 열과 비교되어야합니다.
하지만 제발, 모두 명확히합시다. ID 열! = 기본 키.
1
다른 데이터를 관계에 연결하려는 경우.
예를 들어 관계를 만들 때 등의 링크가있는 로그 테이블을 추가 할 수 있습니다.
메타 데이터를 추가해야하는 경우 관계 테이블에 메타 데이터를 추가하지 않아도되므로 조인을 효율적으로 수행 할 수 있어야하므로 기본 테이블을 추가하고 다른 테이블에 링크 할 수 있습니다 모든 메타 데이터가 포함 된 표.
1
동의해야합니다. 나는 snippet_id와 tag_id를 프라이 머리 키로 만들 것이고, 그것은 불필요한 중복 엔트리가 없다는 것을 보장 할 것이다.
0
특별한 경우에는 유용하지 않습니다. 그러나 테이블이 일대 다 관계 (디자인이 끔찍하게 잘못되었음을 나타낼 수 있음)에 관여했다면, 필요할 것입니다.
0
그런 종류의 스키마는 매우 일반적입니다. IMO, 나는이 경우에 snippet_id
과 tag_id
과 같이 복합 pk를 사용했을 것이다. 나는 복합 모델에 비해 "진정한"이점을 보지 못한다. 아마도 디스크 공간을 절약 할 수있을 것이다.
복합 모델의 장점은 joins
을 피하고 외래 키를 쿼리하면된다는 것입니다.
1
맛의 문제. 두 가지 관행은 공통점이 있습니다.
관련 문제
- 1. 기본 키가없는 Linq 삽입
- 2. EF LINQ 쿼리 - 다수 대 다수
- 3. DB에 의해 생성 된 기본 키가없는 Hibernate?
- 4. Subsonic 기본 키가없는 테이블 생성
- 5. 기본 키가없는 조인 테이블에서 엔티티를 만드는 방법
- 6. many-many 관계에 대한 기본 키 선택
- 7. 편도 다수 - 다수
- 8. 기본 키가없는 테이블의 각 레코드를 변경 하시겠습니까?
- 9. SQL Server가 기본 키가없는 열을 자동으로 증가
- 10. 기본 키가없는 트랜잭션 복제 (고유 인덱스)
- 11. MySQL LOAD DATA INFILE - 기본 키가없는 파일로드
- 12. NHibernate가 기본 키가없는 테이블을 만드는 이유는 무엇입니까?
- 13. GridView의 기본 키가없는 테이블에 대한 SQL UpdateCommand
- 14. 기본 키가없는 링크 테이블에 대한 레일스 라우팅?
- 15. C# : 기본 키가없는 데이터 집합 업데이트
- 16. Zend를 사용하여 기본 키가없는 테이블에 삽입
- 17. 기본 키가없는 MySQL 데이터베이스의 데이터 편집
- 18. 1-many 또는 many-many 관계가있는 RIA 서비스 프레젠테이션 모델
- 19. SQL : Many-Many 테이블에 대해 자동 증분 기본 키가 필요합니까?
- 20. 하나의 "기본"값을 사용하여 many-to-many 구현하기
- 21. 레일즈 다수 대 다수 필터 모델
- 22. many to many relationships
- 23. 기본 키가없는 모델의 모듈을 생성 할 수 없습니다.
- 24. many-to-many 같은 PK
- 25. 단일 엔티티에 대한 Many to Many 관계
- 26. 스키마 디자인 : many to many many to many many one to many
- 27. Django Many To Many Many Order 주문
- 28. 엔터티 프레임 워크 자체 참조 계층 적 다수 대 다수
- 29. Nosql many-to-many
- 30. many to many relationships
"필요"? Salman A가 말했듯이, "맛의 문제." – onedaywhen