What is an application without some sort of storage mechanism behind the scenes? Above represents my database design which I am going to go into more details about.
At the heart of the database is the User table which stores user information and associates a reading list, measurement, or golf round with a corresponding user such that users can only see their data when logged in. This also makes it easy to track additional information by adding the corresponding tables which will then get associated with a user if I choose to expand the application at a later time. The other tables which stores, what I will call public data, is visible to all users to avoid duplication of data. This includes golf course information (Golf Course, Address, Region and Course Par Information tables) and book information (Author, Book, and what authors are associated with which book). The measurement and course par info tables each have a ‘special’ column. The measurement table contains a column called Type which takes a number from 1-4. Since this never changes the application can handle the numbers, rather than creating an additional static look-up table in the database. The number representation is as follows:
The course par information table contains a column called IsCNine to accommodate courses that have more than 18 holes with a format of: (Course Color)*( )(Front|Back). Where there can be 0 or more colors Examples of this would be:
- White Front
- Blue Front
- Blue Back
This format allow for courses which provide 27 holes of golf as they typically have a white, blue, and red course, each with 9 wholes. I’d imagine both would also have a front and back nine. I have never played at a 27 whole golf course but I try to develop for future (or potential) possibilities.
I’ll explain the user profile dynamic content and dashboards text boxes in the diagram in my next post about the dynamic content and dashboards I plan to provide in my application.