Search code examples
mysqldatabasedatabase-designdatabase-normalization

How important is database normalization in a very simple database?


I am making a very simple database (mysql) with essentially two types of data, always with a 1 to 1 relationship:

Events

  • Sponsor
  • Time (Optional)
  • Location (City, State)
  • Venue (Optional)
  • Details URL

Sponsors

  • Name
  • URL


Cities will be duplicated often, but is there really much value in having a cities table for such a simple database schema?

The database is populated by screen-scraping a website. On this site the city field is populated via selecting from a dropdown, so there will not be mistypes, etc and it would be easy to match the records up with a city table. I'm just not sure there would be much of a point even if the users of my database will be searching by city frequently.


Solution

  • Normalize the database now.

    It's a lot easier to optimize queries on normalized data than it is to normalize a pile of data.

    You say it's simple now - these things have a tendency to grow. Design it right and you'll get the experience of proper design and some future proofing.