Dave Stokes

Dave Stokes headshot

Dave Stokes started using PHP when it was known as Personal Home Page and started working for MySQL AN as a PHP Developer. He is now a MySQL Commmunity Manager for Oracle Corporation. He lives in Texas with the required hound dog and pickup truck.

twitter: @stoker


JSON Schema Validation With MySQL

By Dave Stokes

Until recently, there were two schools of thought. Use a traditional relational database with normalized data or a structureless NoSQL database. If you could get avoid designing your database schema and managing table definitions, you could iterate faster and change your application quickly. Schema validation can help you keep an accelerated pace, while still safeguarding critical aspects of your JSON documents.

Published in Data Discipline, August 2020

Three Interesting MySQL 8.0 Features for Developers

By Dave Stokes

There are many new features in MySQL 8.0, but there are some that may not have caught your eye that are very handy for developers. Some, like invisible indexes, histograms, and true descending indexes are probably a little too deep down the DBA rabbit hole for most PHP Developers; there are three that can immediately benefit the average PHP Developer.

Published in How to Tame Your Data, June 2019

MySQL 8.0 Geographic Information System or How Did I Get to This Point?

By Dave Stokes

MySQL before version 5.7 had less than stellar Geographic Information Systems (GIS) support. In version 5.7, the Boost.Geometry two dimensional or 2D libraries were added. The past several years have seen explosive growth in GIS demand, and the pre 5.7 software was not up to what the customer base was demanding. So the decision was made to switch to the Boost.Geometry libraries. This refactoring was a significant investment for the engineering team to move to a third party library and they have also become contributors to the Boost.Geometry project. Also, with 8.0 came the three dimensional or 3D libraries, but how do you use these features?

Published in Serverless, ReactPHP, and Expanding Frontiers, May 2019

SQL Windowing Functions

By Dave Stokes

Structured Query Language, or SQL, was a boring, ho-hum declarative programming language for many years until the fairly recent additions of common table expressions and windowing functions. CTEs and windowing functions turn SQL into a much more robust programming language which provides increased power for your SQL queries. Most popular databases have them and as you will see windowing functions provide some amazing capabilities for data analytics.

Published in Internal Journeys – October 2018, October 2018

MySQL Generated Columns, Views, and Triggers

By Dave Stokes

Databases often have neat features that go unnoticed or lightly used that could make your life as a developer much easier. This article started its path to print at the php[tek] 2018 conference with a discussion on generated columns in MySQL. Several attendees seemed to need extra guidance and this article is an attempt to document how to use some underutilized features. These features do some of the work you would normally do in your application at the database layer which could save you a great deal of time, effort, and potential mistakes.

Published in Masterful Code Management – August 2018, August 2018

MySQL Without The SQL—Oh My!

By Dave Stokes

Do you work on projects where you begin coding before knowing what your data looks like? Or are you part of the vast majority of developers who have had little or no training in database theory, relational calculus, Structured Query Language, or sets? Could you be working on a project without a database administrator to set up relational tables, indexes, and schemas? Or are you tired of embedding ugly lines of SQL in your pristine PHP code? There is new hope for you.

Published in Navigating State – July 2018, July 2018 —Available for Free