You are on page 1of 10

The Snooty Cat Festival Company Design Decisions and Assumptions

Analysing The Snooty Cat Festival Company, I have identified the following entities.(see Figure 1).

Figure 1 - Identified entities


Festival Types – Because Snooty Cat Company organises different types of festivals, I assume that in the future they may
organise festivals, not mentioned in the brief. Therefore, the festival_type_ID it will be a foreign key in Festivals entity and the
company will have the flexibility to add new festival types over time.

First Aid – I am assuming that the arrangements for first aid will be done over the phone/email and the Snooty Cat Company just
need to record if that arrangement was made or not and the details of the arrangement are kept in a signed contract form.
Therefore, I decided to not include a First Aid entity but the arrangement to be recorded under FESTIVAL as an attribute as First
Aid Available (boolean) with the values of YES/NO. However, if more details are required to be recorded for arrangements I may
want to clarify with Snooty Cat Company.

Tickets Sale – Because the CLIENT gets the money from the tickets sales and Snooty Cat Company just facilitate the sales and
assuming that the tickets will have a series number to identify each particular ticket, I will assign a table for tickets where the sold
tickets will be recorded along with their sale price (e.g. Festival-1 were sold 320 tickets at £25 each; Festival-2 were sold 100
tickets at £18 each etc.). The payment method of tickets I am assuming will be done through a specialised website such as PayPal
or handled by a payment processing company (e.g. Sage) and Snooty Cat Company will record only the number of tickets sold per
festival In the database.

Contractors / Vendors / Suppliers / Land Owners – Over time the Snooty Cat Company may have other different types of
participants (e.g. Animators, Entertainers) not mentioned in this case study. Therefore, instead of sticking with these entities I
have decided to use one entity as Partner and one as Partner Groups, where partner_group_ID is a foreign key in Partners entity
and the company would have the flexibility to add more types of partners without need to redesign the database.

Band Payments – I am assuming that an Agent may have several bands under his/her management and they have their own
arrangements/contracts. The payment for band/s would go to the Agent rather than each band and the Agent may use their own
payment system based on what agreement they have. I would contact Snooty Cat Company to clarify who receives the payment.

Site Pitch – I am assuming that Snooty Cat Company would have digital/hard copies of the land layout and they would allocate a
predefined space (e.g. Stand A1, A2, B1, B2 etc.) at the festival for each vendor. I decided to not use Site Pitch as an entity. The
vendor location would be recorded as an attribute in a new entity Festival Details where vendors would be recorded with what
services they offer, location at the festival along with arriving and departure date/time.

Staff – I am assuming that the staff payment will be handled by the company payroll system therefore I will not include any staff
payment records.
- I am assuming that the directors will make contact with potential clients, agents and/or land owners through phone/email and
they will have their own contact details. Once an agreement of participation is made between Snooty Cat Company and client,
agent or land owner the directors will record the details in database.

Festival Advertising – They are not enough information regarding the festival advertising. I am assuming that the Marketing
Department, have own tracking methods, unless the Snooty Cat Company specifies otherwise and I would clarify with them to
include Advertising to the database.

Other – The local authority’s approval, special permits or any other contracts requirements are not specified in the case study and
they are not part of the database system.

| DBPRIN – SUBMISSION 1 Page 1 of 10


Figure 2 - Snooty Cat Festival Company ERD
| DBPRIN – SUBMISSION 1 Page 2 of 10
Data Dictionary for Snooty Cat Company database

AGENT
PK
Attribute Name Data Type & Size Domains and constraints FK Reference Description
AK?
ID_agent PK TINYINT UNSIGNED auto increment Agent ID, Auto generated
ID_partner SMALLINT UNSIGNED NOT NULL partner.ID_partner
covering_area VARCHAR(50) Area covered by the agent (e.g. International, South London etc.)

AMENITY
PK
Attribute Name Data Type & Size Domains and constraints FK Reference Description
AK?
ID_amenity PK SMALLINT UNSIGNED unsigned; auto increment; Amenity ID, Auto generated
amnity_name VARCHAR(100) NOT NULL Name of the facility available at festival
amnity _note TINYTEXT Descriptive note if is required

BAND
PK
Attribute Name Data Type & Size Domains and constraints FK Reference Description
AK?
ID_band PK SMALLINT UNSIGNED auto_increment; Band ID, Auto generated
ID_agent TINYINT UNSIGNED agent.ID_agent
b_name VARCHAR(50) NOT NULL Name of the band
b_genre VARCHAR(30) Music genre played by the band
b_members_no TINYINT(2) Number of members in the band

CLIENT
PK
Attribute Name Data Type & Size Domains and constraints FK Reference Description
AK?
ID_client PK TINYINT UNSIGNED auto_increment; Client ID, Auto generated
c_company AK VARCHAR(100) Client company name
c_name VARCHAR(20) NOT NULL First name of person of contact or individual client
c_surname VARCHAR(20) Last name of person of contact or individual client
c_address1 VARCHAR(50) NOT NULL Client address field 1
c_address2 VARCHAR(50) Client address field 2
c_postcode CHAR(8) NOT NULL Client address postcode

| DBPRIN – SUBMISSION 1 Page 3 of 10


c_city VARCHAR(30) Client address city
c_email AK VARCHAR(60) NOT NULL Client contact email address
c_phone AK VARCHAR(15) NOT NULL Client contact phone number

FESTIVAL
PK
Attribute Name Data Type & Size Domains and constraints FK Reference Description
AK?
ID_festival PK SMALLINT UNSIGNED auto_increment; Festival ID, Auto generated
ID_client TINYINT UNSIGNED NOT NULL client.ID_client
ID_festival_type TINYINT UNSIGNED festival_type.ID_festival_type
ID_amenity SMALLINT UNSIGNED amenity.ID_amenity
f_name AK VARCHAR(100) NOT NULL Name of the festival
f_date DATE NOT NULL Date of the festival
NOT NULL DEFAULT
f_first_aid ENUM('YES','NO') Arrangements for First Aid service
'NO'
f_budget DECIMAL(6,2) NOT NULL The money paid by the client per festival

FESTIVAL_TYPE
PK
Attribute Name Data Type & Size Domains and constraints FK Reference Description
AK?
ID_festival_type PK TINYINT UNSIGNED auto_increment; Festival Type ID, Auto generated
ft_name VARCHAR(100) NOT NULL Festival type name (e.g. music festival, folk festival etc.)
ft_notes TINYTEXT Descriptive note if is required

FESTIVAL_DETAILS
PK
Attribute Name Data Type & Size Domains and constraints FK Reference Description
AK?
ID_festival PK SMALLINT UNSIGNED NOT NULL festival.ID_festival
ID_venue PK TINYINT UNSIGNED NOT NULL venue.ID_venue
ID_service MEDIUMINT UNSIGNED NOT NULL service.ID_service
contract_date DATE NOT NULL Agreement date
pitch_location VARCHAR(20) Location at the event
arriving_time DATE/TIME NOT NULL Arriving date and time of service
departing_time DATE/TIME NOT NULL Departing date and time of service
fd_note TINYTEXT Descriptive note if is required

FESTIVAL_PERFORMERS

| DBPRIN – SUBMISSION 1 Page 4 of 10


PK
Attribute Name Data Type & Size Domains and constraints FK Reference Description
AK?
ID_band PK SMALLINT UNSIGNED NOT NULL band.ID_band
ID_festival PK SMALLINT UNSIGNED NOT NULL festival.ID_festival
fp_entry_time TIME NOT NULL The time when band start performing
fp_end_time TIME NOT NULL The time when band end performing
fp_stage_time TIME Auto generated record based on the ‘end time’ – ‘entry time’
fp_notes TINYTEXT Descriptive note if is required

LANDOWNER
PK
Attribute Name Data Type & Size Domains and constraints FK Reference Description
AK?
ID_landowner PK SMALLINT UNSIGNED auto_increment; Landowner ID, Auto generated
ID_partner SMALLINT UNSIGNED NOT NULL partner.ID_partner

PARTNER
PK
Attribute Name Data Type & Size Domains and constraints FK Reference Description
AK?
ID_partner PK SMALLINT UNSIGNED auto_increment; Client ID, Auto generated
ID_partner_group TINYINT UNSIGNED NOT NULL partner_group.ID_partner_group
p_company VARCHAR(100) Client company name
p_name VARCHAR(20) NOT NULL First name of person of contact or individual client
p_surname VARCHAR(20) Last name of person of contact or individual client
p_address1 VARCHAR(50) NOT NULL Client address field 1
p_address2 VARCHAR(50) Client address field 2
p_postcode CHAR(8) NOT NULL Client address postcode
p_city VARCHAR(30) Client address city
p_email AK VARCHAR(60) NOT NULL Client contact email address
p_phone AK VARCHAR(15) NOT NULL Client contact phone number

PARTNER_GROUP
PK
Attribute Name Data Type & Size Domains and constraints FK Reference Description
AK?
ID_partner_group PK TINYINT UNSIGNED auto_increment; Partner Group ID, Auto generated
p_group_name VARCHAR(50) NOT NULL Name of the group (e.g. Vendor, Contractor, Supplier)

PAYMENT

| DBPRIN – SUBMISSION 1 Page 5 of 10


PK
Attribute Name Data Type & Size Domains and constraints FK Reference Description
AK?
ID_payment PK MEDIUMINT UNSIGNED auto_increment; Payment ID, Auto generated
ID_partner SMALLINT UNSIGNED NOT NULL partner.ID_partner
ID_festival SMALLINT UNSIGNED NOT NULL festival.ID_festival
ID_staff TINYINT UNSIGNED NOT NULL staff.ID_staff
pmt_date DATE NOT NULL Date of the payment
pmt_amount DECIMAL (6,2) NOT NULL Amount of the payment
NOT NULL DEFAULT Payment type (e.g. a vendor “paid in” or a payment to an
pmt_type ENUM('PAYMENT','IN','OUT')
'PAYMENT' agent is “paid out”)

SERVICE
PK
Attribute Name Data Type & Size Domains and constraints FK Reference Description
AK?
ID_service PK MEDIUMINT UNSIGNED auto_increment; Service ID, Auto generated
ID_partner SMALLINT UNSIGNED NOT NULL partner.ID_partner
service_name VARCHAR(50) NOT NULL Name of the service (e.g. Lights, Musical Instruments etc)
service_price DECIMAL(6,2) NOT NULL Price of the service
service_description TEXT Description of the service

STAFF
PK
Attribute Name Data Type & Size Domains and constraints FK Reference Description
AK?
ID_staff PK TINYINT UNSIGNED auto_increment; Staff ID, Auto generated
ID_staff_role TINYINT UNSIGNED NOT NULL staff_role.ID_staff_role
s_name VARCHAR(20) NOT NULL Staff personel first name
s_surname VARCHAR(20) NOT NULL Staff personel last name
s_address1 VARCHAR(50) NOT NULL Staff personel address field 1
s_address2 VARCHAR(50) NOT NULL Staff personel address field 2
s_postcode CHAR(8) NOT NULL Staff personel address postcode
s_city VARCHAR(30) NOT NULL Staff personel address city
s_email VARCHAR(60) NOT NULL Staff personel contact email address
s_phone VARCHAR(15) NOT NULL Staff personel contact phone number

STAFF_ROLE
PK
Attribute Name Data Type & Size Domains and constraints FK Reference Description
AK?
ID_staff_role PK TINYINT UNSIGNED auto_increment; Staff role ID, Auto generated

| DBPRIN – SUBMISSION 1 Page 6 of 10


s_role_name VARCHAR(20) NOT NULL Name of the role (e.g. Management, Marketing etc.)
STAFF_TASK
PK
Attribute Name Data Type & Size Domains and constraints FK Reference Description
AK?
ID_task PK MEDIUMINT UNSIGNED auto_increment; Task ID, Auto generated
ID_festival SMALLINT UNSIGNED NOT NULL festival.festival_ID
ID_staff TINYINT UNSIGNED NOT NULL staff.staff_ID
task_name VARCHAR(50) NOT NULL Name of the task (e.g. Flyer design, Contact Security)
task_date DATE Date when task need to be done
task_time TIME Time when task need to be done
task_details TEXT Extra details about the task
NOT NULL DEFAULT
task_completed ENUM('YES','NO') Marking task as complete.
'NO'

TICKET_SALE
PK
Attribute Name Data Type & Size Domains and constraints FK Reference Description
AK?
ID_sale PK MEDIUMINT UNSIGNED auto_increment; Sale of tickets ID, Auto generated
ID_festival SMALLINT UNSIGNED NOT NULL festival.ID_festival
ticket_start_series VARCHAR(20) NOT NULL Starting series number of tickets (e.g. F123456)
ticket_end_series VARCHAR(20) NOT NULL Ending series number of tickets (e.g. F654321)
ticket_sold SMALLINT UNSIGNED NOT NULL Number of tickets sold
ticket_price DECIMAL (4,2) NOT NULL Price of the tickets

VENUE
PK
Attribute Name Data Type & Size Domains and constraints FK Reference Description
AK?
ID_venue PK MEDIUMINT UNSIGNED auto_increment; Venue ID, Auto generated
ID_landowner SMALLINT UNSIGNED NOT NULL landowner.ID_landowner
venue_name VARCHAR(50) NOT NULL Name of the venue
venue_address1 VARCHAR(50) NOT NULL Venue location field 1
venue_address2 VARCHAR(50) Venue location field 2
venue_postcode CHAR(8) NOT NULL Venue location postcode
venue_city VARCHAR(30) Venue location city
venue_capacity SMALLINT UNSIGNED NOT NULL Total of people capacity of venue
venue_rent_price DECIMAL(5,2) NOT NULL The price of renting the venue

| DBPRIN – SUBMISSION 1 Page 7 of 10


| DBPRIN – SUBMISSION 1 Page 8 of 10
Normalisation of the tables

| DBPRIN – SUBMISSION 1 Page 9 of 10


| DBPRIN – SUBMISSION 1 Page 10 of 10

You might also like