묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
FK, 인덱스 비교 질문
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]엔티티 클래스 개발2에서 FK 관련 질문입니다! FK를 안걸고 인덱스를 거는 방식도 있고 시스템마다 다르다고 하셨는데, Id값은 똑같이 가지고 있고 거기에 인덱스를 거는 것인가요? 그리고 이렇게 하면 속도가 왜 더 빨라지는 것인가요?
-
미해결스프링 데이터 JPA
JPA JoinColumn에서 지정한 FK에 자동으로 값 넣기
안녕하세요. 강의 도중 궁금한점이 있어 질문 드립니다. School Entity와 Student Entity를 Join 관계로 지정하였습니다. [School Entity] @Table(name = "school") public class SchoolVo { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "id", nullable = false) private Integer id; @Column(name = "school_name", nullable = false) private String schoolName; @OneToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL, mappedBy="schoolVoList") private List<Student> student = new ArrayList<>(); } [Student Entity] @Table(name = "student") public class StudentVo { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "id", nullable = false) private Integer id; @Column(name = "school_id", nullable = false) private int schoolId; @Column(name = "student_name", nullable = false) private String studentName; @ManyToOne @JoinColumn(name = "school_id_fk") private SchoolVo schoolVoList; } repository.save를 이용하여 student 테이블에 값을 추가하려고 합니다. 이때 FK인 "school_id_fk"에만 값이 들어가지 않는데요. FK에 접근하려면 어떻게 하면 될까요? FK키에 자동으로 schoolId 값이 들어가도록 하고 싶습니다. Student 테이블에 값을 저장한 소스는 아래와 같습니다. @PostMapping("/local") public StudentVo setStudentInfo(@RequestBody StudentVo newStudent) { return studentRepository.save(newStudent); } 그리고 다른 이야기이지만.. Student Table에 school_id 컬럼이 있음에도 불구하고 FK를 별도로 지정해 주는 방법은 효율적인 건가요? 2컬럼이 계속 같은 값이 들어갈텐데 인터넷 검색해보니 가시성도 높아지고 별도로 해주는게 좋다고도 하던데 굳이 같은 값이 들어가는 컬럼을 중복해서 만들 필요가 있는지, FK없이 JPA에서 테이블간의 조인도 가능한지 궁금합니다! 질문이 쫌 많아졌지만... 조언 부탁 드립니다^^ 감사합니다.
-
미해결데이터베이스 중급(Modeling)
강사님. PK를 상속하는 구조가 많이 사용되어 지는지 여쭤보고 싶습니다.
안녕하세요. 이교준 강사님 우선 데이터베이스 설계 부분에 관심이 생겨 강의를 찾아보다 우연히 강의를 수강하게 되었는데 강의 퀄리티가 좋아서 기분이 좋습니다. 감사합니다! 데이터베이스 설계를 학습하기 전에도 간단한 구조는 나름데이터베이스를 공부하면서 익힌 원리를 적용해서 작성을 하고는 했었는데 저의 경우 일반적으로 Id라는 컬럼을 생성해서 PK를 주고 시작하는 형태로 설계를 해왔습니다. 그리고 일대다 컬럼을 찾아 관계를 매핑시킬 떄도 생각없이Id를 외래키로 가져오는 형식을 사용했습니다. 제가 궁금한점은 Id를 외래키로써 가져오면서 동시에 PK로 사용하는 구조 (말씀하시길 PK 상속구조)를 많이 사용하는지 여쭤보고 싶습니다. 예를들어 연습문제와 비슷한 회사 부서 팀이 있다면 이러한 구조에서도 아래와 같이 사용하는게 유용할지 여쭤보고 싶습니다.회사 테이블의 경우 회사Id (PK)부서 테이블의 경우 회사Id(FK/PK), 부서Id (PK)팀 테이블의 경우 회사Id(FK/PK), 부서Id(FK/PK), 팀Id(PK) 제가 언제나 조금 불편하게 생각했던 부분이 1 : M 독립형 구조로 가게되면 예를들어 학생의 경우 학생은 반 테이블과 조인해서 반정보를 가져오고 또 반 테이블과 조인한 정보를 토대로 학년을 조인해서 학년 정보를 가져오는 부분인데 - (1학년 1반 누구누구) 강사님이 사용하신 PK 상속 구조를 사용하게되면 학생에서 그냥 반 테이블과 학년 테이블에 각각 조인시켜주면 되는 구조라서 되게 효율적으로 보여서 질문드립니다