| | 1 | = Normalization |
| | 2 | |
| | 3 | == De-normalized database form == |
| | 4 | |
| | 5 | '''Unified Relation:''' |
| | 6 | {{{ |
| | 7 | PROPERTY_MANAGMENT_SYSTEM( |
| | 8 | admin_id, admin_name, admin_email, admin_password, |
| | 9 | building_id, building_name, building_address, building_description, |
| | 10 | architect_id, architect_full_name, architect_contact_info, |
| | 11 | floor_id, floor_number, floor_layout_image, |
| | 12 | unit_id, unit_number, unit_room_number, unit_floor_area, unit_status, |
| | 13 | unit_price, unit_image, unit_floorplan, unit_vector_image, |
| | 14 | agent_id, agent_name, agent_email, agent_phone, |
| | 15 | timeslot_id, timeslot_date, timeslot_time_start, timeslot_time_end, timeslot_status, |
| | 16 | appointment_id, appointment_status, |
| | 17 | client_id, client_name, client_email, client_phone |
| | 18 | ) |
| | 19 | }}} |
| | 20 | |
| | 21 | Note: some attributes were renamed due to having multiple attributes with the same name, e.g. email... |
| | 22 | |
| | 23 | '''Functional dependencies:''' |
| | 24 | |
| | 25 | |
| | 26 | FD1: admin_id → admin_name, admin_email, admin_password |
| | 27 | |
| | 28 | FD2: building_id -> building_name, building_address, building_description, admin_id |
| | 29 | |
| | 30 | FD3: architect_id -> architect_full_name, architect_contact_info |
| | 31 | |
| | 32 | FD4: floor_id -> floor_number, floor_layout_image, building_id |
| | 33 | |
| | 34 | FD5: unit_id -> unit_number, room_number, floor_area, status, price, image, floorplan, vector_image, floor_id |
| | 35 | |
| | 36 | FD6: agent_id -> agent_name, agent_email, agent_phone |
| | 37 | |
| | 38 | FD7: timeslot_id -> date, time_start, time_end, status, agent_id |
| | 39 | |
| | 40 | FD8: client_id -> client_name, client_email, client_phone |
| | 41 | |
| | 42 | FD9: client_email -> client_id |
| | 43 | |
| | 44 | FD10: appointment_id -> appointment_status, client_id, unit_id, timeslot_id |
| | 45 | |