Quindi sto progettando un database per un progetto che consentirà alle aziende di bellezza di creare un profilo, ai clienti di creare un profilo e ai clienti di poter prenotare appuntamenti e alle imprese di gestire gli appuntamenti e i loro clienti .
Ho le seguenti tabelle e campi finora (ho mantenuto il più semplice possibile qui, ma c'è di più sulle tabelle su carta):
BUSINESS_TABLE
id (PK)
name
address
contact
about
website
TREATMENT_TABLE
id (PK)
name
description
duration
price
CLIENT_TABLE
id (PK)
name
address
contact
about
current_medical
medical_history
notes
EMPLOYEE_TABLE
id (PK)
name
address
business_id (FK)
business_name (JOIN)
availability_days
availability_hours
APPOINTMENT_TABLE
id (PK)
client_id (FK)
client_name (JOIN)
business_id (FK)
business_name (JOIN)
employee_id (FK)
employee_name (JOIN)
treatment_id (FK)
treatment_name (JOIN)
treatment_duration (JOIN)
treatment_price (JOIN)
appointment_day
appointment_time
Quindi penso di averlo normalizzato correttamente:
Le aziende possono avere molti clienti, appuntamenti, trattamenti e dipendenti I clienti possono avere molti appuntamenti I trattamenti non hanno nulla I dipendenti non sono collegati al business per mantenere le cose semplici per ora Gli appuntamenti prendono trattamenti, aziende, dipendenti e clienti
Quindi APPOINTMENT_TABLE è la tabella di collegamento e tutto il resto in esso.
Oltre a verificare se la mia logica è corretta, chiedevo anche se dovevo suddividere il CLIENT_TABLE in tabelle più piccole, poiché ci sono 11 campi nella categoria current_medical e 20 nella categoria medical_history ed entrambi può essere aggiunto in qualsiasi momento. Penso che varrebbe la pena mettere questi due in tabelle separate e unirli a CLIENT_TABLE per l'organizzazione ed essere in grado di modificarli più facilmente (anche se un po 'più complesso nella programmazione).
Sarei grato di sentire qualsiasi opinione.
Grazie,
Michelle