Torvalds' quote about good programmers
You can normally fix bad code - fixing bad data structures is not usually easy or even possible.It's why I've still not fully bought in to 'release early release often'.I prefer to defer releasing for production use until really satisfied with the structures - this way you have no barrier to ripping the foundations up.If not 100% comfortable with the model - prototype a bare metal improved one (schemaless DBs ftw) - if it feels better start pasting what logic/tests you can salvage from the earlier version and move on.