I am very new to Database Design and I have been practising with as many questions as I can. I happened to come across the below question (No, this is not my assignment!) and from what I could understand, I have created the attached conceptual model. There is some information missing in the model because from the requirements, it wasn't clear to me where should they be added. I have highlighted the lines that I have a doubt in.
You have been assigned the task to design a database schema that captures the information needed for a facility reviewing service for tourists, for facilities such as accommodations, eateries and planned trips. With regards to the accommodations, the service keeps information about the name, the address, the kind of accommodation. The accommodation type could be hotel, hostel or bed & breakfast. We need also the name and address. There is also an optional set of facilities (which should be listed, separately) such as the kind of rooms (single, double or for more persons), the presence of TV in rooms, bathroom, etc. More than one facility could be applicable to the same place. There is also the cost per night which could be specified either per person (in hostels) or per room (in hotels, bed and breakfasts; therefore, depending on the accommodation type).
For the places to eat we have the name and the address (unique and always available). They could be restaurants, bars, pubs, taverns and self-services. It should be specified the kind of cuisine, the average cost per meal (divided into 4 possible cost levels), the daily time table (composed by the open and close times) and optionally the stop days during the week (one or more days). With regards to the trip, we want to specify the list of the names of the attractions (and corresponding address, if present). For each trip attraction, we have the interval of dates in which the tourists visit them. Each customer can leave a review in free text for each place (accommodation or place to eat but not for tourist trips), specifying his/her nickname (which is unique for all the customers), the date of visit (or alternatively a calendar interval specified by two dates) and a integer score (from 0 to 5). Each customer could visit and leave a review more than once for the same place. Draw the ER diagram for the conceptual design of the database.
This is what I came up with: Conceptual Model
The image has the model that I could think of. My doubts are:
1) Is my approach correct to use so many generalizations? Is there any other way?
2) In the description above, the first sentence that is in italics and bold says that there are certain 'optional set of facilities'. Should these attributes be added to Hotel, Hostel and B&B entity or to the generalised Accommodation entity?
3) In the second sentence that is highlighted, should the cost be added to Hotel,Hostel and B&B like I have done? Otherwise, how should I proceed in modelling this?
4) In the third highlighted sentence, should the specified attributes be listed under each type of eatery or should they be added to the generalised entity Eatery?
Thanks much for the help in advance!