Přijde mi jako téměř neodpustitelný hřích nezmínit zde PEAR a jeho FormBuilder.
Skript createTables umí generovat třídy DB_DataObject (objektové mapování relačních tabulek) na základě struktury databáze (při změně struktury můžete přegenerovat, aniž byste přišli o Vámi dodaný kód). Dále můžete dodefinovat přiřazení cizích klíčů (pokud to Váš DB stroj neumí) atd.
No a FormBuilder k výše uvedenému umí vytvářet instance HTML_Quickform a samozřejmě do toho můžete zasahovat na mnoho způsobů...