데이터베이스 디자인 - 질문입니다.
2010.08.15 06:05
문예잡지를 출간하는 비영리 출판사에서 자원봉사로 데이터베이스를 만들어야 하는데요.
15년전부터 현재까지 출간된 잡지들에 실린 article 들의 간략한 summary database 를 만들려고 합니다.
1년에 4회씩, 15년간 잡지를 출간해오고 있기 때문에, 한 회에 10개정도의 article 들이 실린다고 하면, 총 600개 정도 될 것 같아요.
지금 당장은, 그냥 article 제목, issue number , 출간년도와 필자 이름 정도만 입력하려고 하는데요.
한 필자가 여러개의 article 을 썼고, 한 개의 article 에 한 명 이상의 필자가 있는 경우도 간혹 있기 때문에,
many to many 관계형데이터베이스인 경우인데요. 그렇게 되면 총 3개의 table 이 필요한 것이 대체적인 걸로 알고 있습니다.
근데 3 개의 table을 만든다고 하면,
articles 테이블에는 article id, 제목, 출간년도 등등이 들어가겠고....authors table에는 필자 ID, last name, first name (email address) 가 들어가겠구요. linking table 에 article id, 필자 id 가 들어갈텐데요.
근데, 이런 linking table 을 만들려면 필자 이름을 일일히 필자 테이블에서 해당 id 번호를 일일히 다 찾아봐야 하니까, 많이 힘들 것 같아요. 필자가 이삼백명은 될 것 같은데요.
그래서 생각하는 방법이.... 한 개의 article 에 필자가 한 명 이상인 경우가 드물기 때문에, 굳이 필자 table 을 만들지 않고 그냥
linking table 에 article id, 필자 id, last name, first name 을 같이 넣으려고 하는데요. 그렇게 되면, 아무래도 필자 한 사람의 이름
을 반복해서 (서너번) 입력해야 하겠죠. 그래도 이 방법이 data 입력해야 하는 자원봉사자들 입장에서는 이 방법이 더 쉽지 않을까
요? 필요한 테이블은 총 두 개가 되겠죠.
article id | author id | last name | first name |
article id | title | date | issue no |
아니면 필자 id 번호를 필자 table 에서 쉽게 식별하는 방법이 있을까요?
앞으로 작업하면서 데이터 입력하는 방식을 생각해보니....그냥 잡지책의 목차 부분을 펼쳐놓고, 제목과 필자 이름을 입력해나가게 될 것 같은데요. 자원봉사자들이 한 사람 이상이 이 일을 하게 될 것 같은데요.
아무래도 테이블 두 개만 만들어서 필자 이름을 반복해서 입력하는 게 더 쉽지 않을까요?
어떻게들 생각하세요??
코멘트 6
-
가을
08.16 04:19
db 디자인에 대해 공부도 할 겸 해서요.
-
김강욱
08.15 21:11
ㅎㅎ
어쨌든, 저쨌든 시간은 거의 똑 같을 것 같은데요.
예를 들면 어떤 방법을 쓰시던 초기 데이타를 엑셀로 하나로 만드시는 겁니다.
초기 데이타는 아마도 필자명, 아티클제목, 아티클내용 이겠죠.
(단지 전제 조건은 필자명은 중복이 나면, 중복난사람은 이름+'A', 혹은 이름 +'B' 정도로 중복을 제거하고, 아티클 제목은 아마도 유니크할 것 같은데요.)
이걸 먼저 통짜 테이블에 밀어넣고, 그 테이블을 이용해서 쿼리로 세개의 테이블에 밀어넣어야 하지 않을까요?
그럼 별로 시간차이도 없을 것 같은데요.
두번째 모멜은 이름 파는 변경이 없다고 봐도 무방하니, 큰 문제는 없으나, 기타 정보는 어쩔 거냐는 문제를 좀 안고 있어서, 첫번째 모델을 추천드릴 수 밖에 없을 듯 하네요.
-
가을
08.16 04:18
어떤 방법을 써든 초기 데이터를 엑셀로 만들라고 하셨는데요. 초기 데이터를 그냥 엑세스에서 통짜 테이블로 그냥 만들면 안되나요?
엑셀로 만들면 더 좋은 점이 있는 건가요?
궁금해서 여쭤봅니다. DB 잘 몰라서 그러는데요. 엑셀로 초기데이터를 만들어서 엑세스로 export하는 방법들을 많이 사용하나요?
(그러고보니...저는 엑세스에서 excel 데이터 import 하는 방법도 잘 모르네요. 한번도 해본 적이 없어서요.)
-
김강욱
08.16 22:57
초기 데이타를 액세스에 편하게 넣을수 있나요?
뭐...그럼 상관없구요.
100 이면 100 모든 클라이언트들은 액셀을 아주 선호합니다.
입력이 편하거든요.
근데, 넣을때 데이터 보정은 필수입니다.
빈문자나 이름오타, 특수문자...등등등...아주 괴롭습니다.
-
가을
08.17 06:37
답변 감사합니다! ^^
웅.. 디비 수업만 듣고 파일처럼 사용하는 생초짜인데요 -_-;;
근데 자원봉사자들이 입력해야 되는걸 생각하면 속도는 나중에 생각하고
그냥 테이블 하나만 만드는게 더 낫지 않을까요?
어떤점이 문제인지는 잘 모르겠는데요 ^^;
도움이 안되서지송요 ㅠㅠ