Results 1 to 4 of 4

Thread: Golf Course Booking System

  1. #1
    Join Date
    Jun 2005

    Question Golf Course Booking System

    Hi guys,

    I am going to be creating a golf course booking system. I have a few questions firstly based on the database setup. If I give you the background behind the system to give you a better idea of the theory.

    They need a booking system whereby members and visitors can book tee off times based on the current availability. The tee off times will be based on 15 min increments and stored in the database along with the bookingID (primary, autoinc), playerID, bookingtime, bookingdate, no_of_players, etc. The methodology behind the database is the first thing that I need to get my head around, so a basic process scenario would be essential here. No cash transactions will be made during the process only booking times.

    Preferred Methods/Questions
    1. DATE: Booking Form displays a date picker whereby the player can choose a preferred date.
    2. TIME (15 min increments): Once date is selected would it be easier to display all available times during that day or base it all around a search, whereby the player selects a preferred time?
    3. Number of players: This isnt really essential, it is just a record to show the owners the number of players. Future bookings could be based around this number.

    If someone could help me workout some database design or theory behind this scenario I would be very greatful as this is the first proper booking system I will be attempting.

    Please excuse my droaning! Many thanks in advance


  2. #2
    Join Date
    Jan 2004
    Melbourne, Australia
    Will this system be storing the details of the customers (the players)? If so, you may have a many-to-many relationship considering each player can book several tee-off times and each tee-off can involve several players. This will cause loss of referential integrity and must be resolved with a bridging table.

    So, your data model would be set out a bit like this:


    This (horrible) diagram is depicting a resolved many-to-many relationship. The PlayerBookings table will have two foreign keys; one referencing a primary key in the Player table, another referencing a primary key in the Bookings table.

    This is just the tip of the iceberg.


  3. #3
    Join Date
    Jun 2005
    Yes, the PlayerID from the bookings table will be referenced from the playerID.

    I guess it would be easier if they first initiated the playerID by registering? The PlayerID is available for both visitors and members. The members would be picked up by referencing a membership_no field in the players table.

    The main query I have at the moment is how to layout the times and dates in the database. The procedure behind it, as I can imagne is quite resource hungry therefore needing an SQL table?

    Thanks for the help so far!


  4. #4
    Join Date
    Apr 2005
    i dont think this is out of access power. i personally wouldnt run access because i just dont like it, but it should handle it fine.

    i see the issue that buntine brings up. although i think about it in a different way. if your client doesnt want to know about every single player thats in that tee-off time, then you can just use the playerid of the player that is reserving that time slot. this would eliminate that many to many problem.

    now for the times, i would store the date just like normal for the day of the slot. then i think i would have a column for the hour, and a column for the 15 minute block. :00 = 1, :15 = 2, :30 = 3, :45 = 4.

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
HTML5 Development Center



X vBulletin 4.2.2 Debug Information

  • Page Generation 0.33528 seconds
  • Memory Usage 2,856KB
  • Queries Executed 13 (?)
More Information
Template Usage (32):
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_global_above_footer
  • (1)ad_global_below_navbar
  • (1)ad_global_header1
  • (1)ad_global_header2
  • (1)ad_navbar_below
  • (1)ad_showthread_firstpost_sig
  • (1)ad_showthread_firstpost_start
  • (1)ad_thread_first_post_content
  • (1)ad_thread_last_post_content
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)headinclude_bottom
  • (4)memberaction_dropdown
  • (1)navbar
  • (4)navbar_link
  • (1)navbar_moderation
  • (1)navbar_noticebit
  • (1)navbar_tabs
  • (2)option
  • (4)postbit
  • (4)postbit_onlinestatus
  • (4)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open
  • (1)tagbit_wrapper 

Phrase Groups Available (6):
  • global
  • inlinemod
  • postbit
  • posting
  • reputationlevel
  • showthread
Included Files (26):
  • ./showthread.php
  • ./global.php
  • ./includes/class_bootstrap.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/functions_navigation.php
  • ./includes/class_friendly_url.php
  • ./includes/class_hook.php
  • ./includes/class_bootstrap_framework.php
  • ./vb/vb.php
  • ./vb/phrase.php
  • ./includes/functions_facebook.php
  • ./includes/functions_calendar.php
  • ./includes/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_notice.php
  • ./packages/vbattach/attach.php
  • ./vb/types.php
  • ./vb/cache.php
  • ./vb/cache/db.php
  • ./vb/cache/observer/db.php
  • ./vb/cache/observer.php 

Hooks Called (70):
  • init_startup
  • friendlyurl_resolve_class
  • init_startup_session_setup_start
  • database_pre_fetch_array
  • database_post_fetch_array
  • init_startup_session_setup_complete
  • global_bootstrap_init_start
  • global_bootstrap_init_complete
  • cache_permissions
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • load_show_variables
  • load_forum_show_variables
  • global_state_check
  • global_bootstrap_complete
  • global_start
  • style_fetch
  • global_setup_complete
  • showthread_start
  • showthread_getinfo
  • strip_bbcode
  • friendlyurl_clean_fragment
  • friendlyurl_geturl
  • forumjump
  • cache_templates
  • cache_templates_process
  • template_register_var
  • template_render_output
  • fetch_template_start
  • fetch_template_complete
  • parse_templates
  • fetch_musername
  • notices_check_start
  • notices_noticebit
  • process_templates_complete
  • friendlyurl_redirect_canonical
  • showthread_post_start
  • showthread_query_postids
  • showthread_query
  • bbcode_fetch_tags
  • bbcode_create
  • showthread_postbit_create
  • postbit_factory
  • postbit_display_start
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • memberaction_dropdown
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • build_navigation_data
  • build_navigation_array
  • check_navigation_permission
  • process_navigation_links_start
  • process_navigation_links_complete
  • set_navigation_menu_element
  • build_navigation_menudata
  • build_navigation_listdata
  • build_navigation_list
  • set_navigation_tab_main
  • set_navigation_tab_fallback
  • navigation_tab_complete
  • fb_like_button
  • showthread_complete
  • page_templates