작성
·
347
답변 1
0
안녕하세요. alrnr3521님
데이터베이스 테이블에는 항상 PK가 필요합니다.
예를 들어서 FAVORITE_FOOD에서 MEMBER_ID를 PK로 잡지 않으면 FOOD_NAME만 PK로 잡게 되는데요. 이렇게 되면 다른 사용자는 같은 음식 이름을 가질 수 없겠지요?
혹시 관련 내용이 잘 이해가 되지 않으면 데이터베이스 기본에 대한 학습이 필요합니다.
도움이 되셨길 바래요^^
안녕하세요~ 제 생각에 영한님 말씀을 정리하자면 일단 하나의 테이블은 하나의 pk만 들고 있을 수 있어요. 근데 하나의 칼럼이 하나의 pk가 되는 건 아니에요. 2개의 칼럼이 조합되어서 하나의 pk로 쓰일 수 있거든요
create table test(
id int auto_increment,
food varchar(255),
constraint test_PK primary key(id,food)
)
이렇게 말이죠
이렇게 되었을 땐 아이디 + 음식 = 하나의 pk로 잡혀서 여러 유저의 음식 이름이 중복 되어도 아이디 값이 다르니 값이 허용 되는거에요. 음식 이름으로만 pk를 잡으면(테이블은 하나의 pk를 무조건 들고 있어야 함 ) 서로 다른 유저가 같은 음식을 좋아할 수 없겠지요.
근데 jpa 로 쿼리를 날려보면 이렇게 pk를 설정하는 부분은 보이지 않아요 이건 따로 ddl에서 설정을 해야해요.
근데 7분39초에 보면 Member테이블은 아래에 primary key (MEMBER_ID)로 PK가 생성됐는데 FAVORITE_FOOD는 PK를 언제잡는건가요?