I'm working on the conceptual phase of modeling a database for a company right now.
I have two considerations:
1) This database will obviously be integrated into a web application, but more importantly it will be a user/pass based system with rights and privileges.
2) I trying to model a scheduling system for a particular business where users can login and register for appointments to have certain things done for them.
I have thought of a couple different variations but I've found many of them to hop from one side of the fence to the other (in terms of difficulty). By this I mean that either one approach will make the coding simpler ... but will make the tables more non-intrinsic and possibly not meeting 4th Normal Form OR the model will make coding a nightmare.
Here is my most recent model:
User
-------
id -> key
pass
privileges
Client
--------
userID -> key
Appointments
ServiceProvider
------------------
userID -> key
Appointments
Services (offered)
Clients
Appointment
---------------
id -> key
time
date
Services (performed)
Services
-----------
id -> key
name
Personal_Info
----------------
userID -> key
fName
lName
Phone Numbers
Phone_Number
-----------------
[composite key]
userID -> key
number -> key
_________________________
Like I said, I'm not even worried about bridge tables or the handling of 1:Many relationships, Just Drafting the Model.
For some reason this design feels "iffy" at best. Something about making the User table have a direct relationship to every table feels wrong ... but if not wrong then dangerous ... because then there exists a dependency for any entry from any table to exist such that there is a corresponding User entry to facilitate it.
Any thoughts, comments, or suggestions?
Thanks,
Matthew Cox