Question : Help! finding entities in a scenario.

Hello I need to make an EDR and table types and such for a database.

But first I need to get all the entities needed from this Scenario

---

The new Diamond Theatre requires an Information System.  The system will allow the theatre to store details of past and forthcoming events, to book seats for events, and to maintain details of customers who choose to join the mailing list or become friends of the theatre.

Diamond has two studios, each with a unique number and a seating-capacity.  The seats in each studio have a number (for example, B2, N15).  A few of the seats have special notes attached, such as restricted view or suitable for the elderly.

Events take place in a studio; each event has a description, a start date and an end date.  Various types of event are held, from stand-up comedians to plays, concerts, films and so on.  The event type (e.g. film, drama, comedy) is recorded for each event.  Each event is arranged with an agent; details of the agents name, address and telephone number are kept.  When favourable reviews of an event have appeared in the press, a record of each reviews date, who wrote it and where it will be found are recorded.

An event can have one or more performances.  A performance has a date and a start time.  There is an average length of time that each event should take to perform; this average time plus the actual time for each performance are to be stored.  Studio seats are made available for each performance.  The theatre management will decide the price of seats according to the event type (seats for an event aimed at children will be cheaper than for a celebrity singer); the performance (typically, Saturday evening performances are more expensive than other times) and the location in the studio (seats with a better view are more expensive).  Thus, data will be stored about which seats are available for each performance and at what price.  Each seat for a performance will have a status, initially available.

Diamond needs to plan for the technical support required to run an event.  It is beyond the scope of the current system to record employee data; what is needed is the ability to record, for example, that an event requires one stage manager, two assistant stage managers, three lighting and two sound engineers & etc.   These requirements are not always known at the time an event is added to the system.

Customers may purchase one or more seats for a performance.  If customers purchase seats over the telephone or internet their name, address, telephone number and email address will be captured.  However, it is possible for customers to purchase seats with cash at the box office, in which case the customer can refuse to provide these details.  The theatre wants to encourage members of the public to join their mailing list to receive publicity leaflets in an effort to market events.  People who provide their name, address and email for this purpose are added as customers even if they have not yet purchased any seats.   As some customers making a booking via telephone or internet do not want to be put on the mailing list, their preference must be noted.

When a seat purchase is made the purchase date and which available seat was sold are recorded, plus the status of this seat is changed to sold and a ticket printed.  A purchase may involve one or more seats.  The way in which the purchase was made (in person at the box office, over the telephone or via the internet) is also recorded.

At any time before the performance, a customer may return a ticket to the box office. The date the return is made is noted and the status of the available seat that the returned ticket is for becomes returned.  If the box office is subsequently able to re-sell the available seat in another purchase, its status becomes resold.  Thus, the theatre wants to keep track of which available seats have been sold, how many are returned and how many returns are re-sold.  The name, address and telephone number of the customer returning a ticket are taken (if they are not already on the system) so that if the seat is re-sold, they can be reimbursed part of the value.  Note that a customer can return more than one ticket in a single return transaction.  

---

Agent
Event
EventType
Studio
StudioSeat
SeatNote      
Customer

these are ones I have found already, and I am assuming Performance & Refund could possibly be some others but I don't want to be "ADDING TO THE SCENARIO", can someone help me, Thanks.

Answer : Help! finding entities in a scenario.

You've made a good start. Recall that an Entity is a something which can be defined independently - that is, it does NOT depend on the existence of another item. For example, you couldn't have a Driver without an Automobile, so a Driver may not be a good choice as an Entity, but a Person can certainly exist independent of a car, and a Person can fill the role of a Driver.

In your case, you also have to be concerned with the ticketing/purchasing aspect. Review it again, with a special eye towards "nouns" - these are often very good clues as to what might be considered an "entity".

Here's a writeup regarding Entities:

http://en.wikipedia.org/wiki/Entity-relationship_model
Random Solutions  
 
programming4us programming4us