[DB 설계] 이것 좀 봐주세요...
가을c
DB 설계인데요. 개요를 말씀드리면 하숙집같은 곳에서 하숙생을 관리하는 내용입니다.우선 간단한 기호에 대해서 설명...
[table_name] 테이블을 나타냄
((table_name)) 의존 테이블을 나타냄
─*─ : zero or more
─1─ : exactly one
─1...*─ : one or more
제가 질문하려는 내용은 이렇습니다.
처음에는 한방에 한명이 들어온다는 조건으로 다음과 같이 설계를 했습니다.[고객s]─1 ───────*─ ((입실정보s))
id : String PKid : long PK
name : String고객id : String FK not null
....... 입실일 :date
....... 퇴실일 :date
일단 고객이 처음 들어오는 경우에 고객 테이블에 정보가 입력됩니다. 간혹 가다가 예전에 나간 사람이 다시 들어오는 경우도 있어서 입실정보를 따로 빼냈거든요... 위 설계는 한방에 한명씩이라는 조건이 반영되어있습니다.
그런데 알고보니 한 방에 두명, 또는 흔하지 않지만 세명이! 들어오는 경우도 있다는 겁니다.. -_-;;(네명은 없음)
이럴 경우,1인 1실 기본 하숙비에서 한사람 추가할때마다 5만원, 6만원 정도가 추가되는 식이거든요.
고민하다가 제가 생각한 방법은학교 다니면서 배운 정석대로...
[고객s]─1 ───*─ ((고객-입실정보)) ─1...*─────1─ [입실정보s]
id : String PK고객id : String FK not null id : long PK
name : String입실정보id : long FK not null고객id : String FK not null
.......입실일 :date
....... 퇴실일 :date
요렇게 다대다 관계로 바꿔버렸습니다.
제가 객체 설계는 해봤어도 DB 설계는 처음 해보거든요...
그래서인지 저렇게 해도 되는지 어쩐지 확신이 안 서는 겁니다..
저렇게 해놓으면 나중에 테이블에서 정보를 읽어올 때 sql 구문이 복잡해 질 것 같은 느낌도 들고요...
이거보다 더 고민되는건 입실료인데요...
[입실정보]가 [입실료] 테이블하고 연결되어 있거든요.
[입실정보s] ─ 1 ─ ─ ─ ─ ─ ─ * ─ [입실료s]
처음엔 이렇게 했죠. 매달 입실료를 받으니까요.. 그런데 또! 때에 따라서 손님이 몇달치 입실료를 한꺼번에 줄때가 있다는 겁니다.. 이럴 때는 입실료를 좀 싸게 받는 경우도 있다는 거죠.-_-;; 아.. 안습...
이러면 입실정보와 입실료의 관계를 어떻게 설정해야 할지 모르겠습니다.
고수님들의 조언 좀 부탁합니다...
-
가막새
요금 테이블에는 기본요금이나 2인 이상인경우 인원수에 따른 할인율...
또는 방이 등급이 부여되어있다면 해당 등급에 따른 이용료라든가...
요금 선납이나 연채등등에 대한 요금 정책이라든가...
기타 등등 요금에 관련된 항목이 있을텐데 요금테이블 하나로 퉁 칠것인지..
그렇지 않고 위처럼 각 종류별로 나누실것이라면
할인율카테고리 테이블도 만드셔서 조인하시면 될듯 싶고...
지불비용또한 비용 지급시점에 따라서 요금 계산이 어떻게 될지 모르니..
즉, -
징징몬
정확한 비용의 분배 기준을 모르겠네요^^;;
1개의 방에 1명이 입실한 경우와 2명이 입실한 경우...
단순히 5만원 6만원씩 추가인건지..
그렇지 않다면 1인당 기본료가 있고 해당 2인 이상부터는 인원에 따른 추가 할인금액이 주워져서
할인금액을 제외한 총 금액의 n분의 1로 지불하는것인지..
세부적인 내용에 따라 바뀌겠지만...
1. 개인정보 테이블
2. 방정보 테이블
3. 요금 테이블
4. 입실 테이블
대충 저렇게 분리해 놓고 정책에 따라 테이블을