I would like to add that you must re-declare the protected variables in the child class if you are going to have multiple classes inheriting Record. Otherwise PHP will use the same copy of $tableName in memory even with the static keyword.

Thanks for the article!