It really depends on what you prefer. You are going to get answers which tell you it's better to design your object model first (programmers will tell you that) and then there are those that are going to tell you to design your data model first (the database admins).
In the end, the right way is the way that you feel most comfortable with. If you feel that you are going to do most of the manipulation of the data in code, then it might be good for you to start with the object model. If you feel you will perform the majority of the operations in data, then it would be good for you to start with the database.
In regards to source control, if you want to version everything, then you are going to have to generate a sql file which will have what you need to create your db from scratch. Then, every time you change or update the database schema or data, you should place that file into source control as well. I also recommend a naming convention which incorporates the date and time of the file into the file, to make it easy to figure out what order to apply the files in when working from scratch, or any point in time after that.
And of course, you need to version your source code as well, but that should go without saying.