database.sarang.net
UserID
Passwd
Database
ㆍDBMS
MySQL
PostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
DBMS Q&A 1184 게시물 읽기
No. 1184
릴레이션 작성중 고민이 있어서 올립니다.(초보문제.;;)
작성자
김성환(abdurl)
작성일
2005-12-01 11:36ⓒ
2005-12-01 11:38ⓜ
조회수
9,481

안녕하세요?

학교텀이 나와서 하는데.. 최적화와 정규화를 기준으로 설계를 하려고 하는데..아래와 같은 경우에

어떻게 하는것이 옳은지. 그리고 다른 방법이 있다면 그 방법들과의 장단점을 같이 설명 좀 해주셨으면 합니다.^^;;

 

requirement : 비디오 대여프로그램 작성.

회원은 기본인적 정보를 가지며, 지금까지 많이 대여한 비디오의 종류 2가지를 '성향'이라 분석하여 월1회 메일을 보낸다.

비디오는 신프로, 구프로가 있으며, 들어온지 2달이 지나면 구프로로 등락된다. 그리고 대여일수와 연체금도 바뀐다.

(설명을 이정도만 해도 될런지 모르지만,..일단 여기까지만 적겠습니다.)

///////////////////////////////////////////////////////////////////////////////////////////////

제가 작성한 릴레이션들입니다.

비디오대여점 프로그램.

Member ( id ,email, name, phone, lateFee, propensity(성향)1,propensity2)

Video (barcode, title, director, domestic, publisher, date, sort)

Lending (id, barcode, lendDate, dueDate, returnDate)

Propensity (id, pro1,pro2,pro3,...)

///////////////////////////////////////////////////////////////////////////////////////////////

저는 기본적인 Meber,video 릴레이션을 각각 하나의 릴레이션으로 만들고, 추가적으로

Lending 과 Propensity 릴레이션을 만들었습니다.

Propensity 릴레이션은 회원이 비디오를 대여할때마다 비디오 종류에 +1씩 증가하고.

월 1회 집계시 2개의 큰 수를 MAX함수를 사용해서 구할려고 합니다.

그렇지 않으면,

Propensity(id, pro)

이렇게 작성해서 회원이 성향의 종류만큼의 튜플을 가지게 하는 방법을 생각중입니다.

/////////////////////////////////////////////////////////////////////////////////////////////////

이외에 다른 방법이 있는지, 아니면 위의 방법중 어느것이 더효율적인지를

평가 부탁드립니다..

혹 다른 릴레이션 또한 나누어야 한다면, 조언 바랍니다.

꾸벅.

추운데 감기 조심하시구요.~~

이 글에 대한 댓글이 총 1건 있습니다.

 깊이 생각해 보지는 않았지만 Lending primary key에 문제가 있는 것은 확실하군요.

 물론 동일한 비디오를 두번 이상 빌려 가는 일은 흔하지만은 않지만

일어 날 수 있는 일입니다. 봤던 비디오를 또 본다거나, 집안의 다른 사람이 본다면 대개 1가구당 하나의 아이디를 부여한다고 볼때 전에 빌렸던 내역을 지워 버리고 등록해야 하는 일이 발생합니다. primary key에 sequence 번호를 추가 해주는 것이 좋을 것 같군요.

 

Propensity는 성향의 종류가 많은 수가 아니고, 또 전체를 미리 등록하는 것이 아니라 발생한 것만 등록할 수도 있으므로 후자의 방식으로 하는 것이 성향의 종류가 추가 되거나 할 때 application prgram을 거의 수정없이 적용할 수 있다고 생각합니다.

 

도움이 되었으면 합니다.

나그네님이 2006-01-14 04:34에 작성한 댓글입니다.
이 댓글은 2006-01-14 04:43에 마지막으로 수정되었습니다. Edit
[Top]
No.
제목
작성자
작성일
조회
1188MS sql를 배우고 있는 사람입니다.. [1]
msms
2006-01-02
9164
1187초보자 입니다.. 도와주세요
초보자
2005-12-24
9615
1185Query 한번 보아주셔요.. T_T [1]
이승준
2005-12-19
9223
1184릴레이션 작성중 고민이 있어서 올립니다.(초보문제.;;) [1]
김성환
2005-12-01
9481
1180데이터베이스미들웨어란
정광근
2005-11-17
10261
1173정규화/비정규화 - 컬럼의 추가인가 테이블 분리인가 [6]
지우개
2005-11-07
10757
1171질문이요 [1]
배용준
2005-11-04
8819
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2020 DSN, All rights reserved.
작업시간: 0.010초, 이곳 서비스는
	PostgreSQL v13.1으로 자료를 관리합니다