1. Select all the entities (objects)
2. Define a set of fields for entities
3. After the entity is created, produced normalization — at least to the 3rd form of lead you want
4. Again looking into the requirements specification and throws about possible requests emitted heavy queries (the ones that pull a lot of data, or who Joinet many tables) and try to alter the DB structure so that simpler queries. Pit stop here: the most common basic queries are SELECTы, but there is that SELECT is relatively rare and much more important a quick INSERT of data, it is necessary to dance from here.
5. Again critically evaluate the structure, and again we throw approximate queries. Carefully look at INSERTы. Look what INSERTы can be put in triggers. Throws approximate the body of the trigger, rythem structure under it
6. Again critically evaluate the structure, see what we are missing. Part SELECTов trying to make a View and stored procedure
7. Again critically evaluate the resulting mess. Something is correct, remember that we missed something. Go back to point 3.
8. After we think that everything is done, describe each table and field words, describe in detail what is and what we did, where what is optimized and what for.
9. The next morning, looking again, its structure, horrified. Remember that yesterday made the description. Carefully read, understand that we missed something else. Correct complement.
10. Are the structure adjacent to the programmer and try to explain to him the flow of data. When it finally all comes to, asking what he could do. He gives advice, after which you will invent that "it was obvious". Again, everything remodel.
11. When the neighbor-programmer you tired and sent the fuck agreed with your structure, open a DBA, throw a schema placing keys. Again, we understand that missed something. Again remodel the structure.
12. Ithacany and evil go to bed. Tomorrow is another day :)