2017-12-22 39 views
1

나는 회의실 스케줄러 응용 프로그램에 대한 데이터베이스를 디자인하고 있습니다. 그리고 더 큰 것을 만들기 위해 병합 할 수있는 방이 있습니다. 예를 들어, 방 A는 방 B에 병합되어 64ppl을 보유 할 수 있습니다. 아래 데이터베이스 디자인을 첨부했습니다. 백 엔드에서이 기능을 조정하는 방법을 알 수 없습니다. 데이터베이스 l cRoom database design digram 레벨. enter image description here회의실 스케줄러에 대한 sql 데이터베이스 디자인

또한 데이터베이스를 병합 할 수있는 객실 정보를 수용하고 싶습니다. lkRooms 테이블은 싱글 룸과 그 용량 만 나열합니다. (roomA + room B)와 병합 될 수있는 방이 있고 또한 방 (RoomC + RoomD + RoomE + RoomF)이 있습니다. 이 방은 단일 방으로 사용될 수 있으며 하나의 큰 방을 만들기 위해 병합 될 수 있습니다. 내 데이터베이스가 이것을 수용하게합니까? 응용 프로그램에서 DB에서 회의실 정보를 얻길 원합니다. 내가 말하고 싶은 말은 전혀 말이 안된다.

+0

* 방 A는 방 B *에 병합 할 수 있습니까? 그 외에도 mergedRooms 테이블이 정규화되지 않았습니다. –

+0

응용 프로그램에서 용량에 따라 사용자가 방을 예약 할 때 병합 할 수있는 방이 있습니다. – zazzu

+0

예 my mergedRooms 테이블이 적합하지 않습니다. 내가 도움이 필요한 곳은 올바른 접근 방식이 아닙니다. – zazzu

답변

0

booking 테이블 참조에 중간 테이블 인 bookingRoom, fk bookingRoomID이 있다고 가정 해 봅시다. bookingroom 레코드는 lkRoomRoomID으로 나타냅니다. bookingRoom은 "병합 된"방의 주어진 bookingRoomID에 대한 여러 레코드를 갖게됩니다. 그렇지 않으면 싱글 룸 예약의 경우 bookingRoom에 하나의 레코드 만있을 것입니다.

+0

예, 하나의 접근 방식입니다. 또한 병합 할 수있는 회의실 정보를 데이터베이스에 제공하고 싶습니다. lkRooms 테이블은 싱글 룸과 그 용량 만 나열합니다. (roomA + room B)와 병합 될 수있는 방이 있고 또한 방 (RoomC + RoomD + RoomE + RoomF)이 있습니다. 이 방은 단일 방으로 사용될 수 있으며 하나의 큰 방을 만들기 위해 병합 될 수 있습니다. 내 데이터베이스가 이것을 수용하게합니까? 응용 프로그램에서 DB에서 회의실 정보를 얻길 원합니다. 내가 말하고자하는 바가 전혀 의미가 없다면 – zazzu

0

방을 병합 할 수있는 '파티션'개념이 필요하다고 생각합니다. 가능한 가장 큰 방을 저장하는 대신 가장 작은 공간을 저장하고 사람들이 용량을 합한 용량의 더 큰 방을 만들기 위해 파티션을 예약 할 수 있습니다. 더 작은 방들. 그러면 roomPartition 관계가 필요합니다. 따라서 병합 된 방을 예약하려면 파티션을 예약하십시오.

+0

더 설명 해주시겠습니까 :) 제가 포함시킨 데이터베이스 다이어그램 사진을 볼 수 있습니까? lkRooms 테이블은 가능한 가장 작은 파티션을 보유합니다. 하지만 내 어려움은 어떤 방 파티션이 어느 파티션과 함께 들어가는지를 포함시키는 것입니다. 예를 들어 roomA는 방 B 만 병합 할 수 있습니다. – zazzu

+0

@Zazzu이 경우 병합 된 모든 병실 구성이 가능한 "mergeMap"을 만들 수 있습니다. 병합 된 공간이 예약에 필요하면 병합 맵에서 병합 된 회의실을 선택할 수 있습니다. –

+0

가장 쉬운 해결책은 파티션을 항상 제자리에있는 것처럼 다루고 리퀘 스터가 파티션을 제거 할 수있게하는 것입니다. 따라서 mergedRoom 테이블을 완전히 삭제하고 두 개의 서로 다른 방 1A, 1B와 같은 하나의 파티션으로 방을 처리하십시오. 파티션을 제거하려는 요청자는 두 개의 작은 방을 예약합니다. OTOH, 병합 할 수있는 방을 나타낼 필요가 있다면 mergedRoomID (방 1A 및 1B의 mergedRoomID는 1 임)와 mergedRoom (1,1A) 및 (1, 1B). – Beth

관련 문제