will help you Don't fall into the trap of trying to design everything up front. It simply cannot be done. As the project proceeds, you find better ways of implementing the features that you already had implemented. And as you gain experience from you project, you also gain insight on the domain, and how to best design the database. I would recommend taking an agile approach. Design a litte bit at the time. And when you see that stuff you already created could have been designed in a better way, refactor that. This goes both to code and database schema.
How much and what planning is used for software projects?
this will help I think you're confusing planning and design/architecture. Planning usually refers to the business side of things - how many people will do something in how long. Design/architecture should deal with how to do things right assuming you had enough time and budget. In terms of design, most developers know UML to some degree, but don't necessarily use it. If they are given CASE tools, they might use class diagrams for individual use, but not use the others frequently. CASE tools force you to use the "formal form" of UML so they are fairly strict and that limits their creative use. A CASE model is often created to benefit from code generation. In my own company, we produce a ton of code but don't use UML at all.
Planning, Scaling and Optimizing Large Web Application
will be helpful for those in need 1) Is MySQL a good solution to handle these data requirements? ~100 million records at some point. Absolutely. Make sure you've got everything indexed properly, and if you hit a storage or query-per-second limit, you've got plenty of options that apply to most/all DBMS's. You can get beefier hardware, start sharding data across servers, clustering, etc..
For a large project, what planning should be done before coding and how should it be approached?