2010-03-17 7 views
2

나는 PHP와 MySQL을 사용하여 온라인 호텔 예약 시스템을 개발할 예정입니다 ... 현재 데이터베이스 스키마와 비즈니스 로직에 대한 의구심이있어 객실이 무료 인 호텔을 얻을 수 있습니다. 두 특정 날짜 사이 ...호텔 예약 시스템 데이터베이스 스키마

누구나 내가 호텔 예약 스키마와 시스템에서 사용해야하는 비즈니스 로직에 대한 아이디어를 얻을 수있는 튜토리얼을 알고 있습니까? 귀하의 제안에 대한

감사합니다 ....

편집 : 나는 밖으로 논리의 대부분을 냈어요 ... 포인트는 내가 ... 다음과 같다 대한 명확하지 않다

  1. 사용자가 두 특정 날짜 사이에 특정 호텔에서 둘 이상의 객실을 선택하는 경우 어떻게하면 다음 예약 테이블에서 나타낼 수 있습니까?

    테이블 : 예약

    Field 1 : reservation_id 
    Field 2 : room_id 
    Field 3 : no. of Rooms 
    Field 4 : check-in date 
    Field 5 : check-out date 
    Field 6 : Customer id 
    
  2. 가 어떻게 객실이 예약 테이블을 기반으로 날짜와 다음 객실 테이블 사이에 사용할 수있는 확인하실 수 있습니다 ...?

    테이블 : 룸

     Field 1 : hotel_id 
        Field 2 : room_id 
        Field 3 : total_num_rooms 
    

참고 : dB 두 개 이상의 호텔을 포함 ... 그래서 도시를 선택하고 두 사이의 지역에 호텔에서 사용할 수있는 객실도 찾아보실 수 있습니다 사용자처럼 특정 날짜 ...

또한

호텔에있는 특정 유형의 방 (10 개) 숫자가있는 경우, 내가 특정 기간 동안 무료 객실의 수를 표시하기 위해 필요하다고 .....

+2

숙제 인 경우 스키마를 생각해보십시오. 호텔이 어떻게 작동해야하는지 생각해보십시오. 그리고 그렇지 않다면 고객에게 물어보십시오. 그들은 비즈니스 로직의 가장 좋은 판사가 될 것입니다 – Midhat

답변

1

호텔 예약 시스템과 같은 것을 표현하는 완벽한 방법은 없습니다.

호텔에서 일하는 고객이나 고객과 이야기를 나눠보고 그들이 현재하고있는 일을 이해하고 시스템을 기반으로 해보십시오.

것 같아요 것 : 등등

A Room has a RoomType 
A Customer can Book 1..n Room(s) 
A RoomType has a name and a price 

... 그리고 있습니다.

자습서를 사용하는 경우 가능한 사용자의 요구 사항에 맞지 않는 시스템이 작성 될 수 있습니다. 이러한 미래의 최종 사용자와 이야기하고 비즈니스 논리를 파악하고 코딩을 시작하십시오.

+0

@marcgg : 편집을보세요 ... – SpikETidE

5

일반적인 생각으로 나누기와 정복을 적용하십시오. 항상.

예를 들어, 특정 고객이 특정 기간 동안 '객실 수'를 가질 수 있어야한다고 생각하는 이유는 무엇입니까? 예를 들어, 출장 중이며 며칠 후 우리 가족이 나를 따라 오게한다면 어떨까요? 이제 주어진 시간 동안 객실 수는 더 이상 상수가 아닙니다.

정말 중요하지 않습니까? 사실, 동일한 고객에 대해 다른 항목을 추가 할 수 있습니다. 그러나 다시 한 번 고객이 처음 한 번에 한 방에 한 방만 가질 수 있다는 논리를 단순화 할 수는 있지만 주어진 고객에 대해 시간대가 겹치는 행이있을 수 있습니다.

또한 ReservationReservationRequest을 분리해야합니다. 후자는 제가 생각하기에 예약 세트로 구성되어 있습니다. 왜냐하면 저와 저의 가족을위한 방을 원하기 때문이며 두 가지 기준이 일치해야합니다.

몇 가지 아이디어가 있습니다. 이것이 상아탑 접근 방식이며 대규모로 과장된 해결책으로 이어질 수 있습니다. RealWorld (TM)에서 Marcs 제안에 충실하십시오 : 실제 고객의 요구를 분석하십시오. 요청의 1 %를 처리하는 데 200 %의 개발 시간이 소요된다면, 개발자는이를 원하지 않을 것이며 그 반대도 마찬가지입니다.

+0

제안 사항은 유효합니다 ... 다행스럽게도 요구 사항이 아닙니다 .... – SpikETidE

+0

이것은 숙제입니까? 그렇지 않으면 왜 그 데이터 구조를 사용하고 싶습니까? – mnemosyn

+0

이것은 숙제가 아닙니다 ... 나는 잘된 비즈니스 로직에 대해 확신하지 못했습니다. 그래서 더 좋은 제안이 필요합니다 ... – SpikETidE

관련 문제