Am I overengineering MySQL?
So much of accounts and visitors is common, that it pains me to see the extra tables for sessions and cookies.  I'd rather see visitors with NULL values for the extra 3-4 columns.