User and Database classes in PHP
Just a few comments on the code as it stands so far: 


You're using pretty old-school file dependency management (which isn't the same as dependency management) by explicitly including things.  I'd strongly suggest you look into the SPL autoload system, write an autoloader that can find where your classes are located in the filesystem and rely on the autoloader to handle the file dependency management instead.  It means that only code that's actually going to be used will be included and you won't get into a situation where you have loads of included classes but only a few get used, or where you're not sure what's been included.  
You're using static methods.  Generally, statics are frowned upon because they're not considered to be good OO practice.  Sometimes they're necessary, but as a rule you should avoid them.  Any other class that makes use of the static call becomes tightly coupled to the class that implements it, reducing re-usability and testability (it becomes very difficult to test the dependant modules in isolation because you can't easily replace the static with a mock implementation).  I'd advise refactoring your factory to work in a non-static way. 
Your Database class seems like it might not be necessary.  It's merely a wrapper around PDO, and actually hides most of the PDO class functionality.  I'd suggest you might be better off using PDO directly, as it's got a well-documented interface and you'll have full access to all the PDO functionality in the consuming classes instead of the small subset your Database class provides.  


I would say that on the whole you're on basically the right track though.  It's certainly better than my own early efforts with OOP.  Don't worry, thinking in an "objecty" way is something that comes with practice and experience.