먼저 죄송합니다. 제가 정신없이 질문을 하다보니...
질문 작성을 잘못해서. 다시 올립니다.
먼저 user 테이블의 PK 는 이전 질문에서 name 이라고 했는데
id 를 의도한것이었습니다.(애트리뷰트명을 잘 정해야 하는데, 저의 실수)
일단 id로 고치면, PK로 쓰는데는 문제없을것 같고
profile 테이블은 각각 유저의 어플리케이션 설정파일같은것을
저장하는 용도입니다.
위의 user 테이블을 복사해서 붙이다 보니... 잘못 기제 됬습니다.
일단 먼저 재익님꼐서 달아주신 코멘트로, 상당부분의 고민이 해결되었습니다.
너무 바이블적인 것을 요구하는것 같지만
이 질문에서 저의 가장 큰 질문인
1:1 대응관계로 형성이 가능할떄....
1. 그것을 추가적인 애트리뷰트로 넣는가?
2. 새로운 entity 로 추가해서 relationship을 맺을것인가?
이거에 대한 모델링 관점에서의 가이드라인같은것이 있는지가 궁금합니다.
--------------------------------------------------------------
아래는 수정된 최초 질문내용입니다.
예를 들어서 아래와 같은 사용자에 대한 기본적인
정보를 가진 user 테이블이 있다고 가정을 합니다.
user
--------------
|PK id |
--------------
| passwd |
| uid |
| gid |
| dir |
| shell |
--------------
그리고 이 유저에 대한 기타 프로파일을 추가해야 되기 때문에
profile 이라는 테이블을 부가적으로 만들었습니다.
user 테이블이 부모 테이블이 되고,
profile의 name을 user 테이블에 대한 FK 로 됩니다.(1:1 대응관계)
profile
--------------
|PK,FK id |
--------------
| pagerow |
| editor |
| replyto |
| sign |
--------------
후에 각각의 유저에 대한 인증서 정보(DN, usercert, userprivate) 가
부가적으로 필요하게 되었습니다.
여기서 고민이 생깁니다.
제가 생각해볼 수 있는 방법이 2가지가 있었습니다.
방법 1. profile 테이블에 DN, usercert, userprivate 필드를 추가한다.
방법 2. 아래와 같이 certificate 테이블을 추가한다
certificate
-----------------
|PK,FK id |
-----------------
| dn |
| usercert |
| userprivate|
-----------------
어떤 방법을 쓰건 문제될건 없다고 생각이 되는데.
어떤 방법이 DB 모델링 관점에서 볼때 추천할만한 모델인지 궁금합니다.
그럼 고수님들의 한수지도 부탁드립니다.
|