Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 8267173
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 8, 20262026-06-08T05:25:13+00:00 2026-06-08T05:25:13+00:00

I am designing a database to store golf scores and other statistics about each

  • 0

I am designing a database to store golf scores and other statistics about each hole or round, but am having difficulty in knowing which method will be most efficient. My question centers around structuring the tables for courses and rounds. Here’s two options, although I’m not sure if there’s a better third. I’m using mySQL 5.1.63 and PHP 5.2.17. Tables in CAPS for readability.

  1. Have one large tables that stores all of the course information, since this information will only be listed once in the database (~100 columns…18 holes * 4 attributes each hole, in addition to course_name, location, phone, etc.)
    • COURSE: course_id, par_1, par_2, …par_18, distance_1, distance_2, …distance_18, etc.
  2. Split the course information into tables, connecting certain tables with course_id at the proper time
    • COURSE_PAR: course_id, par_1, par_2, …par_18
    • COURSE_DISTANCE: course_id, distance_1, distance_2, …distance_18
    • COURSE_INFO: course_id, course_name, address, phone…
    • etc.

A similar question could be asked about recording the round. Do I have round_1, round_2, …, hit_fairway_1, hit_fairway_2, num_putts_1, num_putts_2, or do I break each of those attributes into their own table? This question and its answers lean towards breaking this into tables. Does that mean a structure like:

  • SCORE: hole_num, course_id, round_id, score, hit_fairway, num_putts, …

Recurring queries (using PHP) would be mostly on did the person hit above or below par, hit the fairway, # of putts, etc.

Hopefully my question was clear enough. I know there are semi-similar questions out there, like the one referenced above, but I couldn’t quite transfer those answers to what I was looking for.

Thank you!

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-06-08T05:25:16+00:00Added an answer on June 8, 2026 at 5:25 am

    Not sure what ‘slope’ is, but how’s this for a start:

    COURSE - one record per course
    CourseID
    AddressInfo
    NumHoles - usually 9 or 18
    
    HOLE - one set of these per course
    CourseID
    HoleNum
    Par
    Slope - you can add more here if you want (water, sand, etc.)
    
    MATCH
    CourseID
    MatchID
    MatchName
    StartDate
    
    ROUND
    RoundID
    MatchID
    PlayerID
    RoundNum
    StartDate
    
    SCORE - every time a player plays a hole, add one of these
    CourseID
    MatchID
    RoundID
    HoleID
    PlayerID
    NumPutts
    NumStrokes - you can add more specifics if you want (fairway, rough)
    
    PLAYER
    PlayerID
    

    This is what you call ‘fully normalized’, and has minimal duplication of data from table to table. The resulting SQL statements can get a little complicated for a beginner, but it will be worth it if you get it right now.

    EDIT (2020): If (as was just asked) you need to support multiple tees per hole, add this:

    HOLE_LENGTH - distance from tee to cup
    CourseID
    HoleNum
    TeeIdentifier - Black, White, Blue, etc
    Distance
    
    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I'm designing a database which will store information about some artists. These artists can
I don't know a lot about MYSQL and am having trouble designing my database
I am designing a new laboratory database. I want to store the raw results
I am designing a User table in my database. I have about 30 or
I am designing a new laboratory database. I want to store the raw results
I am designing a table in the database which will store log entries from
I'm designing a contact manager/address book-like application but can't settle on the database design.
I'm designing a contact manager/address book-like application but can't settle on the database design.
I'm designing a database for internal use at my company that will store data
I'm designing a relational database, but I'm not too much experienced, so I'd like

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.