Torvalds' quote about good programmers
You can normally fix bad code - fixing bad data structures is not usually easy or even possible.<p>It's why I've still not fully bought in to 'release early release often'.<p>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.<p>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.